加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 00:59:07 所属栏目:Linux 来源:网络整理
导读:问题:客户X是一个 Windows用户,希望能够通过使用助记符关键字或“标签提示”触发预先打包的bash命令,当她通过shell登录到她的RedHat框时. 示例:客户X使用ssh登录主机并希望执行一些例行文件操作.她希望能打字 copy file 并获取可供选择的预制备填充空白bas
问题:客户X是一个 Windows用户,希望能够通过使用助记符关键字或“标签提示”触发预先打包的bash命令,当她通过shell登录到她的RedHat框时.

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

copy file

并获取可供选择的预制备填充空白bash命令列表

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

然后,她希望能够选择其中一个项目,填写空白,然后按Enter键运行命令.

客户X愿意提前指定她可能想要使用的命令(在Windows中说话),然后聘请开发人员将这些命令转换为bash命令,然后将它们放在一个允许她说话窗口的脚本中-speak to bash并返回命令列表.

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

apropos shortcut

没有给她任何关于创建符号链接的东西(即使这正是她想要的),因为她不知道在linux中调用了哪些Windows快捷方式.显然,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进行比较,如果匹配则显示相应的一个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读