高階Bash指令碼程式設計
阿新 • • 發佈:2019-02-08
#!/bin/bash
# param.sh
#引數替換
{
# ${param-default} 如果 param 未宣告,則使用預設值,否則使用null
#+ ${param:-default} 如果 param 未設定,則使用預設值,否則使用null
echo "${num-123}, ${num:-123}";
num=;
echo "${num-123}, ${num:-123}";
num=456;
echo "${num-123}, ${num:-123}";
echo "${num}"
echo;
}
{
# ${param=default} 如果 param 未宣告,則 param 的值設定為 default,並返回.
#+ ${param:=default} 如果 param 未設定,則 param 的值設定為 defalut,並返回.
echo "${str="hello kitty"}, ${str:="hello kitty"}";
str=;
echo "${str="hello kitty"}, ${str:="hello kitty"}";
str="How do you do?";
echo "${str="hello kitty"}, ${sty:="hello kitty"}";
echo "${str}"
echo;
}
{
# ${param+val} 如果 param 已宣告,則使用 val,否則使用null.
#+ ${param:+val} 如果 param 已設定,則使用 val, 否則使用null.
unset num ;
echo "${num+123}, ${num:+123}";
num=;
echo "${num+123}, ${num:+123}";
num=456;
echo "${num+123}, ${num:+123}";
echo "${num}";
echo;
}
{
# ${param?errmsg} 如果 param 已被宣告,那麼使用它的值,否則列印 errmsg,並 exit
#+ ${param:?errmsg} 如果 param 已被設定,那麼使用它的值,否則列印 errmsg,並 exit
str="Hello World.";
echo "${str}";
echo "${str?"str undefault"}, ${str:?"str unset"}";
srt=;
echo "${str?"str undefault"}, ${str:?"str unset"}";
unset str
echo "${str?"str undefault"}, ${str:?"str unset"}";
echo;
}
#-, :-
#=, :=
#+, :+
#?, :?
# param.sh
#引數替換
{
# ${param-default} 如果 param 未宣告,則使用預設值,否則使用null
#+ ${param:-default} 如果 param 未設定,則使用預設值,否則使用null
echo "${num-123}, ${num:-123}";
num=;
echo "${num-123}, ${num:-123}";
num=456;
echo "${num-123}, ${num:-123}";
echo "${num}"
echo;
}
{
# ${param=default} 如果 param 未宣告,則 param 的值設定為 default,並返回.
#+ ${param:=default} 如果 param 未設定,則 param 的值設定為 defalut,並返回.
echo "${str="hello kitty"}, ${str:="hello kitty"}";
str=;
echo "${str="hello kitty"}, ${str:="hello kitty"}";
str="How do you do?";
echo "${str="hello kitty"}, ${sty:="hello kitty"}";
echo "${str}"
echo;
}
{
# ${param+val} 如果 param 已宣告,則使用 val,否則使用null.
#+ ${param:+val} 如果 param 已設定,則使用 val, 否則使用null.
unset num ;
echo "${num+123}, ${num:+123}";
num=;
echo "${num+123}, ${num:+123}";
num=456;
echo "${num+123}, ${num:+123}";
echo "${num}";
echo;
}
{
# ${param?errmsg} 如果 param 已被宣告,那麼使用它的值,否則列印 errmsg,並 exit
#+ ${param:?errmsg} 如果 param 已被設定,那麼使用它的值,否則列印 errmsg,並 exit
str="Hello World.";
echo "${str}";
echo "${str?"str undefault"}, ${str:?"str unset"}";
srt=;
echo "${str?"str undefault"}, ${str:?"str unset"}";
unset str
echo "${str?"str undefault"}, ${str:?"str unset"}";
echo;
}
#-, :-
#=, :=
#+, :+
#?, :?