我正在尝试将用户命令grep到一个变量中。如果命令以特定的词开头,则我会将命令重定向到另一个Shell(不是BASH)中,否则它将定期在bash上运行。当我使用“读取”时,我丢失了BASH提示,然后我无法自动完成,退格等。
我的目标是:
例如ls -la
,如果我键入命令,该命令将不会运行,而是会分配给变量:
user@machine:~$ ls -la
user_command = 'ls -la'
如果该命令不是其他Shell命令(不是BASH)
eval $user_command
有什么办法可以做到这一点?
我猜你想:通过另一个外壳而不是bash调用一些特定的命令
您可以为每个命令定义一个函数
例:
ls () { # function that, instead of bash, launch 'ls' through ksh
ksh -c "ls $*"
}
这样,每个函数的名称都与您要在另一个shell上运行的命令相匹配(如果需要与ksh以外的另一个shell一起运行,请相应地编辑函数的内部)
将那些功能放在特定用户的“〜/ .bashrc”文件中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句