有没有办法让 shell 脚本在命令提示符下输出文本而无需发出命令?
背景:我每天多次通过 SSH 连接到一台特定的机器,大约 80% 的时间,我一登录就输入相同的三个命令。我只是将这些命令放在我的 .bashrc
中,但有 20% 的时间,我不想想要发出这些命令。我想知道是否有一些命令可以放入 .bashrc
中,它会自动在我的命令行中放置一个字符串,这样当我登录时我会看到:
$ cd some/dir && ./some_script.sh
然后我可以在 80% 的时间内只按回车键,或者在另外 20% 的时间内清除文本。
最佳答案
(灵感来自 Abdul Rehman's 答案。)
将此作为 last 行放入 .bashrc
文件中:
read -e -p "(Control-C to cancel) $ " -i "cd some/dir && ./some_script.sh" && eval "$REPLY"
read -e
可让您使用 Readline 输入字符串进行编辑。-p
为这个一次性命令提供伪提示。-i
提供了一个默认字符串,您可以对其进行编辑或按 Enter 键接受。
如果您按下 Enter,read
会设置 REPLY
的值并以状态 0 退出,导致执行以下 eval
。 (通常,eval
不是一个好用的命令;但是,无论如何,在这里您都会看到一个交互式 shell,所以这里没有太大的风险。)如果您键入 Control-C 相反,read
以状态 1 退出并且未执行以下 eval
,让您留在命令提示符下。
关于linux - 如何在不执行命令的情况下从 shell 脚本在命令提示符下输入文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33286740/