unix shell脚本的默认值?

cof*_*fee 12 unix linux shell scripting

通常,当参数传递给shell脚本时,第一个参数的值为$ {1},第二个参数为$ {2},等等.

如何设置这些参数的默认值,因此如果没有参数传递给脚本,我们可以使用$ {1}的默认值?

Op *_*kel 13

你不能,但你可以像这样分配一个局部变量:${parameter:-word}或者在需要$ 1的地方使用相同的构造.如果_paramater为null或未设置,则此menas使用单词

注意,这适用于bash,检查shell的默认值的语法

  • 它也适用于Bourne,Korn和POSIX shell,因此它可以广泛使用.它在C Shell衍生物中不起作用,但是,海贝壳最好留在海岸上. (2认同)
  • 如果一个空字符串可以是一个有效的输入,你必须使用`$ {parameter-word}` - 它不会破坏空字符串. (2认同)

Mar*_*ark 10

#!/bin/sh
MY_PARAM=${1:-default}

echo $MY_PARAM
Run Code Online (Sandbox Code Playgroud)


Jon*_*ler 9

你可以考虑:

set -- "${1:-'default for 1'}" "${2:-'default 2'}" "${3:-'default 3'}"
Run Code Online (Sandbox Code Playgroud)

脚本的其余部分可以使用$1,$2,$3没有进一步检查.

注意:如果您在参数的末尾有一个不确定的文件列表,这不会很好用; 只有零到三个参数才能正常工作.