-3

如果我正在编写 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.119and myname@10.20.205.67,但是当我执行 an 时$ echo $#,我得到 0,即使我在命令行中传入了 'myname'。

4

2 回答 2

0

是的你可以。此外,这取决于您的脚本架构。您可以使用配置中的值覆盖参数,反之亦然。

顺便说一句,shflags在编写这样的脚本时可能非常有用。

于 2012-07-03T17:46:10.390 回答
0

假设“配置文件”只是主脚本中的一部分 shell(通常包含一些变量的定义),如下所示:

. /etc/script.conf

当然你可以在任何地方使用位置参数(在“./etc/...”之前或之后):

echo "$@"
test -n "$1" && ...

你甚至可以在脚本或同一个配置文件中定义它们:

test $# = 0 && set -- a b c
于 2012-07-03T18:22:41.607 回答