bash – 使用“!”在脚本中执行具有相同参数的命令

shell中,我运行以下命令没有问题,

ls -al

!ls

对ls的第二次调用还列出了带-al标志的文件.但是,当我将上述脚本放到bash脚本中时,会抛出投诉,

!ls,命令未找到.

如何在脚本中实现相同的效果

解决方法

您需要在脚本中打开命令历史记录和!-style历史记录扩展(认情况下,这些都在非交互式shell中关闭):

set -o history
set -o histexpand

扩展命令也会响应标准错误,就像在交互式shell中一样.您可以通过打开histverify shell选项(shopt -s histverify)来阻止它,但在非交互式shell中,这似乎使历史扩展成为空操作.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...