gpt4 book ai didi

linux - 显示基于 "Windows-speak"的兼容命令的 bash 脚本

转载 作者:IT王子 更新时间:2023-10-29 00:31:27 26 4
gpt4 key购买 nike

问题:客户 X 是 Windows 用户,她希望在通过 shell 登录到她的 RedHat box 时能够通过使用助记关键字或“标记提示”来触发预先打包的 bash 命令.

示例:客户 X 使用 ssh 登录到主机并希望执行一些常规文件操作。她希望能够打字

copy file

并返回一个预制的填空 bash 命令列表以供选择

cp <@source@> <@dest@>               ### simple copy
cp -R <@startdir@> <@destdir@> ### recursive copy

然后她希望能够选择其中一项,填写空白,然后按回车键运行命令。

客户 X 愿意提前指定她可能想要使用的命令(在 Windows 中),然后聘请开发人员将这些命令翻译成 bash 命令,然后将它们放在一个脚本中,让她可以使用与 windows 交谈 - 与 bash 交谈并取回命令列表。

注意:客户 X 不喜欢 apropos,因为它假定熟悉 bash 中使用的术语,而不是 windows-speak。例如:

 apropos shortcut

没有给她任何关于创建符号链接(symbolic link)的信息(即使这正是她想要的)因为她不知道在 linux 中调用什么窗口快捷方式。显然,Windows 概念不会超过 100%,因此她最终将不得不学习,但她是一个忙碌的人,并且要求这样做是为了让她“轻松”了解 Linux。

问题:开始这样的事情的最佳方式是什么?是否已经有 perl、python、ruby 脚本可以执行类似的操作? bash 中有什么东西可以模拟这种功能请求吗?

最佳答案

您可能想要覆盖 bash 的 command-not-found 处理程序。这是安装处理程序的标准 Ubuntu 安装中/etc/bash.bashrc 中的部分:

...
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found -- $1
return $?
else
return 127
fi
}
fi
...

实际上,如果未找到命令,则用户指定的程序将以该命令作为参数执行。对于 Ubuntu,它是一个 Python 程序,用于检查用户键入的命令是否是可以安装的有效应用程序,如果是,则通知用户他/她可以安装它。

您可能想要做的是将它与您的命令和用法字符串的 hashref 进行比较,如果匹配则显示合适的。

关于linux - 显示基于 "Windows-speak"的兼容命令的 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/379867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com