日期:2014-05-16  浏览次数:20915 次

linux 下的命令转换符美元符号疑问
各位兄台,小弟有一事不明,特来请教。
我看到一个例子,说:在Linux中,$符号可以用来进行命令置换,例如:
$ls -l $(cat /etc/shells)
输出:
-rwxr-x-x   1   root   root   735004   Oct 21 2008 /bin/bash
...

我不太明白这个“用$符号进行命令置换”是什么意思?给我感觉就是cat命令的输出作为了ls -l 命令的输入,这就是所说的置换吗?
linux??$??置换

------解决方案--------------------
是作为了ls -l 的参数。
$() 是个整体,意思是获取括号内命令的输出结果,无非就是一些本来输出在屏幕上的字符串了。
这个和``(两个Esc下面那个按键上的)是等价的即:ls -l $(cat /etc/shells)的结果和 ls -l `cat /etc/shells` 相同。
------解决方案--------------------
耐心看完这个教程:
http://www.tldp.org/LDP/abs/html/commandsub.html