gpt4 book ai didi

linux - 在 bash 中不中断地读取用户输入

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:55 24 4
gpt4 key购买 nike

我正在尝试将用户命令 grep 到一个变量中。如果命令以特定单词开头,我会将命令重定向到另一个 shell(不是 BASH),否则它将在 bash 上定期运行。当我使用“阅读”时,我失去了 BASH 提示,然后我无法自动完成、退格等。

我的目标是:

如果我键入例如 ls -la 命令将不会运行并将分配给变量:

user@machine:~$ ls -la

user_command = 'ls -la'

如果命令不是其他 shell 命令(不是 BASH)

eval $user_command

有什么办法可以实现吗?

最佳答案

我猜你想:通过另一个 shell 而不是 bash 调用一些特定的命令

您可以为每个命令定义一个函数

例子:

ls () { # function that, instead of bash, launch 'ls' through ksh
ksh -c "ls $*"
}

这样,每个函数的名称都与您要使用另一个 shell 运行的命令相匹配(如果需要使用 ksh 以外的其他 shell 运行,则相应地编辑函数的内部)

将这些函数放在特定用户的“~/.bashrc”文件中。

关于linux - 在 bash 中不中断地读取用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24104143/

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