2012-08-24 48 views
-2

大家,我在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} 

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

+0

击参数扩展说明[这里](http://www.gnu.org/software/bash /manual/html_node/Shell-Parameter-Expansion.html)。但是,你的问题过于宽泛。请针对您的实际问题提出更具体的问题。另外,Stackoverflow对bash中shell参数扩展的问题已经有几个Q/A,所以你可能会先检查它们。 –

+0

['bash'](http://linux.die.net/man/1/bash) –

回答

0

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

事实上,因为这些其中男子页都有他们(使用parameterword)的形式完全相同和你有他们相同的顺序,我很惊讶,你不知道这一点了。

一个例子是${parameter:-word}其中规定:

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

所以,这种情况下,${xyzzy:-plugh}会给你的,如果它被设置${xyzzy}的价值,否则你会得到字面"plugh"

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

+0

谢谢你,你很美〜 – user1621691

0

参数扩展

为参数扩展的格式如下:

${expression} 

其中表达由所有字符,直到匹配的 '}' 的。在确定匹配的'}'时,不应检查任何'}'由反斜线或引用字符串转义的字符,嵌入的算术扩展,命令替换和变量扩展中的字符。

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

${parameter} 

细节参见:
http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html