在之前的文章《你可能不知道的超实用shell技巧 —— !$》中,我们知道了 在shell中,!$代表了上一个命令的最后一个参数。那如果要获取上个命令的其它参数该怎么操作呢?

还是以echo hello world命令为例,下面就演示在该命令执行完成后,如何获取命令的各个参数甚至命令本身。

# echo hello world
hello world
# echo !:1
echo hello
hello
# echo hello world
hello world
# echo !:2
echo world
world
# echo hello world
hello world
# echo !:3
-bash: :3: bad word specifier

在调用!:3的时候出错了,因为上一次的命令只有两个参数。

下面你应该知道如何获取上次执行的是哪个命令了,那就是!:0,请看下面

# echo hello world
hello world
# echo !:0
echo echo
echo

其实呢,有更好的表示方法,看下面

# echo hello world
hello world
# echo !#
echo echo 
echo

总结

!# 上一个命令名
!$ 上一个命令的最后一个参数
!:n 上一个命令的第n个参数

参考文章

http://crazyof.me/blog/archives/171.html

转载请注明:知识蚂蚁 » 你可能不知道的超实用shell技巧 —— 上个命令各个参数的表示方法

我来说说

(便于我们更好的交流)

有不明白的地方欢迎留言哦~
取消