1. 程式人生 > >高階Bash指令碼程式設計

高階Bash指令碼程式設計

#!/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;
}

#-, :-
#=, :=
#+, :+
#?, :?