2012-04-12 71 views
0

我读通过我的.bashrc,发现以下

cd "[email protected]" && some_other_function 

什么是$ @意味着什么?

+0

请参阅[unix shell编程特殊变量](http://stackoverflow.com/questions/3206312/unix-shell-programming-special-variables) – 2012-04-12 23:17:44

回答

1

man bash来自:

@
展开为位置参数,从1开始。当扩展出现在双引号内时,每个参数都会扩展为单独的单词。也就是说,“$ @”相当于“$ 1”“$ 2”...如果双引号扩展出现在一个单词内,则第一个参数的扩展与原始单词的开始部分相连,并且扩展最后一个参数的最后部分与原始单词的最后部分连接。

1

$ @表示传递给脚本的所有参数。

如果你调用一个名为foo.sh这样的脚本:

$> foo.sh boo goo loo 

$ @输出将是这样的:

> boo goo loo 
0

[email protected]是空的,[email protected]不展开为空字符串;它被完全删除。因此,无法进行测试:

[ -n "" ] 

而是:

[ -n ] 

现在-n不是一个运营商,而只是一个非空字符串,它总是测试为真。