有没有办法在命令提示符下输出shell脚本而不发出命令?
背景:我每天多次SSH到特定的机器,大约80%的时间,我登录后立即输入相同的三个命令.我只想把这些命令在我.bashrc,但20%的时间,我不希望发出这些命令.我想知道是否有一些我可以放入的命令.bashrc会自动将一个字符串放在我的命令行中,这样当我登录时我会看到:
$ cd some/dir && ./some_script.sh
Run Code Online (Sandbox Code Playgroud)
然后我可以按80%的时间输入,或者只是在20%的时间内清除文本.
我知道这不是你问的,但为什么不用alias来缩短你的命令呢?
$ alias a='cd some/dir && ./some_script.sh'
Run Code Online (Sandbox Code Playgroud)
由于您经常使用此功能,因此可以将其添加到.bashrc文件中,这样您就不必每次都设置别名.
登录后您可以输入a
$ a
Run Code Online (Sandbox Code Playgroud)
(受Abdul Rehman的回答启发.)
把它作为文件的最后一行.bashrc:
read -e -p "(Control-C to cancel) $ " -i "cd some/dir && ./some_script.sh" && eval "$REPLY"
Run Code Online (Sandbox Code Playgroud)
read -e 允许您使用Readline输入字符串进行编辑.-p提供伪提示此一次性命令.-i提供的信息可以编辑或按回车键接受默认的字符串.如果按Enter键,则read设置值REPLY和退出状态为0,导致eval执行以下操作.(通常,eval这不是一个好用的命令;但是,在这里你会得到一个交互式shell,所以这里没有太大的风险.)如果你键入Control- C而是read退出状态1并且eval不执行以下操作,离开你在命令提示符下.
| 归档时间: |
|
| 查看次数: |
1077 次 |
| 最近记录: |