小编Nuc*_*ear的帖子

Bash 历史记录 - 通过字符串获取最后一个命令,包含空格

我知道 bash 功能 !text,它运行以“text”开头的最后一个命令。但当“文本”包含空格时,它似乎不起作用。有时,搜索包含空格的内容很有用。

例如:

history | grep ping
  514  ping 192.168.100.2
  515  ping 192.168.100.3
  516  ping 192.168.100.4
  517  ping google.com
  518  ping 192.168.100.5
  519  ping 192.168.100.6
  520  ping 192.168.100.7
Run Code Online (Sandbox Code Playgroud)

我想使用 ! 来调用线路“ping google.com”。特征。我尝试了一些事情,但失败了:

这是标准行为,它运行最后一个 ping 命令

/root# !ping  
ping 192.168.100.7
Run Code Online (Sandbox Code Playgroud)

一个简单的字符串,后面有空格!不起作用

/root# !ping google
ping 192.168.100.7 google
Run Code Online (Sandbox Code Playgroud)

据我所知,引号告诉 bash 将带有空格的字符串解释为单个字符串,而不是 2 个单独的字符串。但在这里它并没有按预期工作。

/root# !"ping google"
bash: !"ping: event not found

/root# !'ping google'
bash: !'ping: event not found

/root# "!ping google"
"ping 192.168.100.7 google google"

/root# '!ping google'
bash: …
Run Code Online (Sandbox Code Playgroud)

bash shell

4
推荐指数
1
解决办法
1017
查看次数

标签 统计

bash ×1

shell ×1