猿问

如何使用双或单括号、大括号

如何使用双或单括号、大括号我对括号、大括号在Bash中的用法以及它们的双形式或单一形式之间的区别感到困惑。有明确的解释吗?

慕的地10843
浏览 3246回答 3
3回答

慕盖茨4494581

单一括号([)通常实际上调用一个名为[; man test或man [想了解更多信息。例子:$ VARIABLE=abcdef $ if [ $VARIABLE == abcdef ] ; then echo yes ; else echo no ; fiyes双括号([[)做相同的事情(基本上)与一个单一的括号,但是一个bash内建。$ VARIABLE=abcdef $ if [[ $VARIABLE == 123456 ]] ; then echo yes ; else echo no ; fino括号(())用于创建子shell。例如:$ pwd/home/user  $ (cd /tmp; pwd)/tmp $ pwd/home/user如您所见,子shell允许您在不影响当前shell环境的情况下执行操作。(A)Braces({})用于明确地识别变量。例子:$ VARIABLE=abcdef $ echo Variable: $VARIABLEVariable: abcdef $ echo Variable: $VARIABLE123456Variable:$ echo Variable: ${VARIABLE}123456Variable: abcdef123456(B)BRACE还用于执行电流shell上下文,例如$ { date; top -b -n1 | head ; } >logfile  # 'date' and 'top' output are concatenated, # could be useful sometimes to hunt for a top loader ) $ { date; make 2>&1; date; }  | tee logfile# now we can calculate the duration of a build from the logfile有一个微妙的句法区别( )不过,(见Bash参考);本质上,分号;在大括号中的最后一个命令之后是必须的,而大括号{, } 必被空间包围。

撒科打诨

托架if&nbsp;[&nbsp;CONDITION&nbsp;]&nbsp;&nbsp;&nbsp;&nbsp;Test&nbsp;construct&nbsp;&nbsp; if&nbsp;[[&nbsp;CONDITION&nbsp;]]&nbsp;&nbsp;Extended&nbsp;test&nbsp;construct&nbsp;&nbsp; Array[1]=element1&nbsp;&nbsp;&nbsp;Array&nbsp;initialization&nbsp;&nbsp; [a-z]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Range&nbsp;of&nbsp;characters&nbsp;within&nbsp;a&nbsp;Regular&nbsp;Expression$[&nbsp;expression&nbsp;]&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;A&nbsp;non-standard&nbsp;&&nbsp;obsolete&nbsp;version&nbsp;of&nbsp;$((&nbsp;expression&nbsp;))&nbsp;[1][1]&nbsp;http:/wiki.bash-hackers.org/Scripting/过时卷曲架${variable}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parameter&nbsp;substitution&nbsp;&nbsp; ${!variable}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indirect&nbsp;variable&nbsp;reference&nbsp;&nbsp; {&nbsp;command1;&nbsp;command2;&nbsp;.&nbsp;.&nbsp;.&nbsp;commandN;&nbsp;}&nbsp;Block&nbsp;of&nbsp;code&nbsp;&nbsp; {string1,string2,string3,...}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Brace&nbsp;expansion&nbsp;&nbsp; {a..z}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extended&nbsp;brace&nbsp;expansion&nbsp;&nbsp; {}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text&nbsp;replacement,&nbsp;after&nbsp;find&nbsp;and&nbsp;xargs括号(&nbsp;command1;&nbsp;command2&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command&nbsp;group&nbsp;executed&nbsp;within&nbsp;a&nbsp;subshell&nbsp;&nbsp; Array=(element1&nbsp;element2&nbsp;element3)&nbsp;Array&nbsp;initialization&nbsp;&nbsp; result=$(COMMAND)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command&nbsp;substitution,&nbsp;new&nbsp;style&nbsp;&nbsp; >(COMMAND)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process&nbsp;substitution&nbsp;&nbsp; <(COMMAND)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process&nbsp;substitution双亲((&nbsp;var&nbsp;=&nbsp;78&nbsp;))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;arithmetic&nbsp;&nbsp;&nbsp; var=$((&nbsp;20&nbsp;+&nbsp;5&nbsp;))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;arithmetic,&nbsp;with&nbsp;variable&nbsp;assignment&nbsp;&nbsp;&nbsp; ((&nbsp;var++&nbsp;))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C-style&nbsp;variable&nbsp;increment&nbsp;&nbsp;&nbsp; ((&nbsp;var--&nbsp;))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C-style&nbsp;variable&nbsp;decrement&nbsp;&nbsp;&nbsp; ((&nbsp;var0&nbsp;=&nbsp;var1<98?9:21&nbsp;))&nbsp;C-style&nbsp;ternary&nbsp;operation
随时随地看视频慕课网APP
我要回答