Change The World

沉默是一种力量,嘶吼就不是力量了?

0%

shell参数替换

学习并记录shell脚本中参数替换的几种替换格式

格式一
  • ${parameter-default} – 如果变量parameter没被声明, 那么就使用默认值.

    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
    default="默认值"
    echo ${parameter-${default}} #parameter 未声明
    # 输出:默认值
    parameter=
    echo ${parameter-${default}} #parameter 已声明
    #输出:
  • ${parameter:-default} – 如果变量parameter没被设置, 那么就使用默认值.

    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
    default="默认值"
    echo ${parameter:-${default}} #parameter 未声明
    # 输出:默认值
    parameter=
    echo ${parameter:-${default}} #parameter 已声明
    #输出:默认值
格式二
  • ${parameter=default} – 如果变量parameter没声明, 那么就把它的值设为default.

    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
    default="默认值"
    echo ${parameter=${default}} #parameter 未声明
    # 输出:默认值
    parameter=
    echo ${parameter=${default}} #parameter 已声明
    #输出:
  • ${parameter:=default} – 如果变量parameter没设置, 那么就把它的值设为default.

    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
    default="默认值"
    echo ${parameter:=${default}} #parameter 未声明
    # 输出:默认值
    parameter=
    echo ${parameter:=${default}} #parameter 已声明
    #输出:默认值
格式三
  • ${parameter+default} – 如果变量parameter被声明了, 那么就使用default, 否则就使用 null字符串.

    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
    default="默认值"
    echo ${parameter+${default}} #parameter 未声明
    # 输出:
    parameter=
    echo ${parameter+${default}} #parameter 已声明
    #输出:默认值
  • ${parameter:+default} – 如果变量parameter被设置了, 那么就使用default, 否则就使用 null字符串.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/bash
    default="默认值"
    echo ${parameter:+${default}} #parameter 未声明
    # 输出:
    parameter=
    echo ${parameter:+${default}} #parameter 已声明
    #输出:
    parameter= '被赋值'
    echo ${parameter:+${default}} #parameter 已赋值
    #输出:默认值
格式四
  • ${parameter?default} – 如果parameter已经被声明, 那么就使用设置的值, 否则打印default 错误消息.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/bash
    default="默认值"
    echo ${parameter?${default}} #parameter 未声明
    # 输出:
    parameter=
    echo ${parameter?${default}} #parameter 已声明
    #输出:
    parameter= '被赋值'
    echo ${parameter?${default}} #parameter 已赋值
    #输出:默认值
    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
    parameter=
    echo ${parameter?${default}} #parameter 已声明
    #输出:
    parameter= '被赋值'
    echo ${parameter?${default}} #parameter 已赋值
    #输出:被赋值
  • ${parameter:?default} – 如果parameter已经被设置, 那么就使用设置的值, 否则打印 default错误消息.

    1
    2
    3
    4
    #!/bin/bash
    default="默认值"
    echo ${parameter:?${default}} #parameter 未声明
    # 输出:默认值 (报错)
    1
    2
    3
    4
    #!/bin/bash
    parameter=
    echo ${parameter:?${default}} #parameter 已声明
    #输出:默认值 (报错)
    1
    2
    3
    4
    #!/bin/bash
    parameter= '被赋值'
    echo ${parameter:?${default}} #parameter 已赋值
    #输出:被赋值
不如请我吃根冰棒吧