如果我正在编写 bash 脚本,并且我选择使用配置文件作为参数。我还可以通过命令行为其传递参数吗?我想我是在问我可以用同一个命令执行这两项操作吗?
淡化代码:
#!/bin/bash
source builder.conf
function xmitBuildFile {
for IP in "{SERVER_LIST[@]}"
do
echo $1@$IP
done
}
xmitBuildFile
builder.conf:
SERVER_LIST=( 192.168.2.119 10.20.205.67 )
<小时/>
$bash> ./builder.sh myname
我的预期输出应该是 myname@192.168.2.119
和 myname@10.20.205.67
,但是当我执行 $ echo $#
时,即使我在命令行上传入“myname”,我也会得到 0。
最佳答案
假设“配置文件”只是主脚本中的一段 shell(通常包含一些变量的定义),如下所示:
. /etc/script.conf
当然,您可以在任何地方使用位置参数(“./etc/...”之前或之后):
echo "$@"
test -n "$1" && ...
您甚至可以在脚本或同一个配置文件中定义它们:
test $# = 0 && set -- a b c
关于linux - Bash 配置文件或命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11316290/