cam*_*amh 184
使用冒号:
: ${A:=hello}
Run Code Online (Sandbox Code Playgroud)
冒号是一个空命令,不执行任何操作并忽略其参数.它内置于bash中,因此不会创建新进程.
Jon*_*n L 88
请查看http://www.tldp.org/LDP/abs/html/parameter-substitution.html以获取示例
${parameter-default}, ${parameter:-default}
Run Code Online (Sandbox Code Playgroud)
如果未设置参数,请使用默认值.通话后,参数仍未设置.
两种形式几乎相同.:只有在声明参数时,extra 才会有所不同,但是为null.
unset EGGS
echo 1 ${EGGS-spam} # 1 spam
echo 2 ${EGGS:-spam} # 2 spam
EGGS=
echo 3 ${EGGS-spam} # 3
echo 4 ${EGGS:-spam} # 4 spam
EGGS=cheese
echo 5 ${EGGS-spam} # 5 cheese
echo 6 ${EGGS:-spam} # 6 cheese
Run Code Online (Sandbox Code Playgroud)
${parameter=default}, ${parameter:=default}
Run Code Online (Sandbox Code Playgroud)
如果未设置参数,请将参数值设置为默认值.
两种形式几乎相同.:仅在声明参数且为null时才有所不同
# sets variable without needing to reassign
# colons suppress attempting to run the string
unset EGGS
: ${EGGS=spam}
echo 1 $EGGS # 1 spam
unset EGGS
: ${EGGS:=spam}
echo 2 $EGGS # 2 spam
EGGS=
: ${EGGS=spam}
echo 3 $EGGS # 3 (set, but blank -> leaves alone)
EGGS=
: ${EGGS:=spam}
echo 4 $EGGS # 4 spam
EGGS=cheese
: ${EGGS:=spam}
echo 5 $EGGS # 5 cheese
EGGS=cheese
: ${EGGS=spam}
echo 6 $EGGS # 6 cheese
Run Code Online (Sandbox Code Playgroud)
${parameter+alt_value}, ${parameter:+alt_value}
Run Code Online (Sandbox Code Playgroud)
如果参数设置,请使用alt_value,否则使用null字符串.通话后,参数值没有改变.
两种形式几乎相同.:仅在声明参数且为null时才有所不同
unset EGGS
echo 1 ${EGGS+spam} # 1
echo 2 ${EGGS:+spam} # 2
EGGS=
echo 3 ${EGGS+spam} # 3 spam
echo 4 ${EGGS:+spam} # 4
EGGS=cheese
echo 5 ${EGGS+spam} # 5 spam
echo 6 ${EGGS:+spam} # 6 spam
Run Code Online (Sandbox Code Playgroud)
Sie*_*geX 18
默认值参数扩展通常在构建脚本中很有用,如下面的示例一样.如果用户只是按原样调用脚本,则不会内置perl.用户必须显式设置WITH_PERL为"no"以外的值才能将其内置.
$ cat defvar.sh
#!/bin/bash
WITH_PERL=${WITH_PERL:-no}
if [[ "$WITH_PERL" != no ]]; then
echo "building with perl"
# ./configure --enable=perl
else
echo "not building with perl"
# ./configure
fi
Run Code Online (Sandbox Code Playgroud)
没有 Perl 构建
$ ./defvar.sh
not building with perl
Run Code Online (Sandbox Code Playgroud)
使用 Perl 构建
$ WITH_PERL=yes ./defvar.sh
building with perl
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74053 次 |
| 最近记录: |