【发布时间】:2013-04-25 13:03:00
【问题描述】:
我有一个包含多个输入文件的脚本,通常这些是存储在标准位置并由脚本调用的默认值。
但是,有时需要使用更改的输入来运行它。
在我目前的脚本中,比如说,三个变量,$A $B 和 $C。现在我想用非默认 $B 运行它,明天我可能想用非默认 $A 和 $B 运行它。
我已经查看了如何解析命令行参数:
How do I parse command line arguments in Bash?
我如何处理有时通过命令行参数设置一些?
我没有足够的声望点来回答我自己的问题。不过,我有一个解决方案:
Override a variable in a Bash script from the command line
#!/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
【问题讨论】:
-
您可以为此目的使用
getopts。有很多教程,像aplawrence.com/Unix/getopts.html 这样的教程可以作为开始使用。 -
谢谢,我在链接的问题上看到了这一点。我想知道是否有一些标准方法可以让命令参数覆盖变量。例如,在 python 中定义函数时,可以设置默认值。我可以看到,通过 if 检查,我可以用命令行参数替换默认值,但不确定是否有这样做的标准方法?
标签: bash variables command-line-arguments default