什么是shell中的$ {}?

时间:2012-08-24 06:00:08

标签: shell

大家,我在bash编程中遇到问题,就是我不知道在bash中是什么意思 脚本:

${parameter:-word}
${parameter:=word}
${parameter:?word}
${parameter:+word}
${parameter:offset}
${parameter:offset:length}
${!prefix*}
${#parameter}
${parameter#word}
${parameter##word}
${parameter%word}
${parameter%%word}
${parameter/pattern/string}
${parameter//pattern/string}

这种用法,谢谢你回答我。

2 个答案:

答案 0 :(得分:0)

如果您只是打开一个终端窗口并输入man bash,您就可以在Parameter Expansion下找到所有这些内容。

事实上,由于这些完全手册页所包含的形式(使用parameterword),并且按照相同的顺序,我拥有它们我很惊讶你已经不知道了。

一个例子是${parameter:-word},其中说明:

  

使用默认值。如果parameter未设置或为null,则word的扩展将被替换。否则,parameter的值将被替换。

因此,对于这种情况,${xyzzy:-plugh}会为您提供${xyzzy}的值(如果已设置),否则您将获得文字"plugh"

我不会详细介绍它们,bash手册页详细解释了这一点。 “教一个人钓鱼......”以及所有这些东西。

答案 1 :(得分:0)

参数扩展

参数扩展的格式如下:

${expression}

其中表达式由匹配的“}”之前的所有字符组成。在确定匹配的'}'时,不应检查由反斜杠或带引号的字符串中的任何'}'以及嵌入式算术扩展,命令替换和变量扩展中的字符。

参数扩展的最简单形式是:

${parameter}

有关详细信息,请参阅:
http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html