我试图将config
文件 asan 参数从命令行传递到脚本,但没有得到预期的结果。谢谢 :)。
配置在命令行上调用为:
bash script.sh /path/to/config.txt
/path/to/config.txt 的内容
#File1comment
var1=/path/to/file1
#File2comment
var2=/path/to/file2
script.sh 的内容
config=$1
. $config
echo -e "$@"
test -n "$1" && set -- a b c
当前的
/path/to/config.txt
想要的 --- 每个可用于脚本的文件 ---
/path/to/file2
/path/to/file2
新代码
config=$1
set -- $config
echo -e "$@"
while read line; do
printf "$line" >script.sh
done <"$config"
答案1
有点不清楚您想要或需要对配置文件做什么。
如果您的配置文件是您希望在脚本中获取的文件(如您在示例之一中所做的那样),则将$config
执行文件名中的代码。
执行文件名中的代码$config
设置两个变量var1
和var2
。要使用它们的值,请在脚本中使用$var1
和。$var2
#!/bin/bash
config=$1
. $config
printf 'var1 is %s\n' "$var1"
printf 'var2 is %s\n' "$var2"
如果您想解析出=
由 指向的文件中的字符之后的字符串$config
,那么您可能会不是获取文件的来源,然后sed
像这样使用:
#!/bin/bash
config=$1
sed -n '/^#/d; /[^=]*=/s///p' "$config"
此脚本中的命令sed
会忽略以字符开头#
或不包含=
字符的任何行。对于每隔一行,=
该行的第一个字符及其前面的所有字符都将被删除,并打印剩余的数据。