我有一个脚本,其中有多个输入文件,通常这些文件是存储在标准位置并由脚本调用的默认值。
但是,有时需要使用更改的输入来运行它。
在脚本中,我当前有三个变量:$A、$B 和 $C。现在我想用非默认的 $B 运行它,明天我可能想用非默认的 $A 和 $B 运行它。
我已经了解了如何解析命令行参数:
如何解析 Bash 中的命令行参数? https://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash
有时我该如何处理由命令行参数设置的问题?
我没有足够的声望点来回答我自己的问题。不过,我有一个解决方案:
从命令行覆盖 Bash 脚本中的变量 https://stackoverflow.com/questions/4609668/override-a-variable-in-a-bash-script-from-the-command-line/4610469#4610469
#!/bin/bash
a=input1
b=input2
c=input3
while getopts "a:b:c:" flag
do
case $flag in
a) a=$OPTARG;;
b) b=$OPTARG;;
c) c=$OPTARG;;
esac
done
您可以按照以下方式进行操作。看外壳参数扩展 https://tiswww.case.edu/php/chet/bash/bashref.html#Shell-Parameter-Expansion在 Bash 手册页上。
#! /bin/bash
value=${1:-the default value}
echo value=$value
在命令行上:
$ ./myscript.sh
value=the default value
$ ./myscript.sh foobar
value=foobar
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)