在shell中,!$是一个特殊的环境变量,它代表了上一个命令的最后一个参数。看下面的例子
$ echo hello world hello world $ echo !$ echo world world $ echo "hello world" hello world $ echo !$ echo "hello world" hello world
这里为什么要用echo呢,请看下面,如果不用echo,!$输出的内容(world)会被shell当做一个命令来执行,所以就会报错
$ echo hello world hello world $ !$ world No command 'world' found, did you mean: Command 'tworld' from package 'tworld' (universe) world: command not found
应用场景示例
1、建立多层目录并进入建立好的多层目录
$ mkdir -p a/b/c/d/e $ cd a/b/c/d/e 改成 $ mkdir -p a/b/c/d/e $ cd !$
上面mkdir -p命令用来一次性建立多层目录
2、编写文件后检测文件格式或者编译文件
$ vi a.php $ php -l !$ 或者 $ vi main.c $ gcc !$
更多应用场景就需要各位自己去慢慢琢磨了,有好的应用示例可以反馈给我哦~
转载请注明:知识蚂蚁 » 你可能不知道的超实用shell技巧 —— !$
昨天碰到的一个相关技巧:!$命令返回某个命令使用的上一个文件名参数。但如果某个命令使用多个文件名,而你只希望重用其中一个文件名,该如何做?!:1操作符返回某个命令使用的第一个文件名,!:2操作符返回某个命令使用的第二个文件名。
http://crazyof.me/blog/archives/171.html 可以看看~~