2013-08-05 110 views
1

我想捕获一个命令输出并将其存储在一个变量中,但我想多做一次。Bash递归捕获命令输出

例如,id'e喜欢做这样的事情:

base=`basename `readlink link`` 

当我尝试,我得到一个错误:

basename: missing operand 

建议?

感谢

回答

2

使用美元括号语法递归地捕获命令输出:

base=$(basename $(readlink link)) 

与反单引号的问题是,在翻译时遇到第二回勾,解释认为back-tick会关闭第一个命令,而你想要的是打开一个新的命令。