我有这个测试脚本:
#!/bin/bash echo "Read a variable" #open file exec 6该文件
test.txt
只有一行:EXAMPLE=1输出是:
bash-3.2$ ./Read_Variables.sh Read the variable EXAMPLE=1
$EXAMPLE
在这种情况下,我只需要使用值1
.那么我怎样才能避免EXAMPLE=
在输出中获得部分?谢谢
如果包含变量的文件始终使用bash语法(例如X = Y),则另一个选项是使用source
:
#!/bin/bash echo "Read a variable" source test.txt echo $EXAMPLE
作为获取整个文件的替代方法,您可以尝试以下操作:
while read line; do [[ $line =~ EXAMPLE= ]] && declare "$line" && break done < test.txt
它将扫描文件,直到找到看起来像赋值的第一行EXAMPLE
,然后使用declare
内置来执行赋值.它可能有点慢,但它对实际执行的内容更具选择性.