linux - Bash 配置文件或命令行参数

标签 linux bash parameters

如果我正在编写 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.119myname@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/

相关文章:

java - 递归方法是否将类属性/数据字段作为参数?

Linux TCP 接受无 SYN|ACK

linux - 将 bash 脚本作为守护进程运行

php - 从一个容器到另一个容器访问服务

ms-access - 将报表的打开事件中的参数传递给参数查询 (Access 2007)

C++ 数组大小取决于函数参数会导致编译错误

linux - 使用超时命令时如何获取文件中的日志?

c# - 非 Windows 操作系统上的 .NET 框架 System.Windows.Form

bash - 带有千位分隔符的 BASH 中的数字格式

linux - 选择并循环遍历两个目录 linux 中的差异