bash根据config.ini文件中默认变量的值使用源读取变量

我想读取我的配置文件并获取默认打印机的值。所以在这个例子中,我期望返回结果Zebra_GK420D。bash根据config.ini文件中默认变量的值使用源读取变量

我的config.ini文件,如下所示:

enable_printing=yes 

default_printer=printer1

printer1=Zebra_GK420D

printer2=DYMO_LabelWriter_4XL

create_proof=yes

我使用以下bash脚本:

1 #!/usr/bin/env bash 

2

3 #Define filename

4 fConfig=config.ini

5

6 #If file exists, read in variables.

7 if test -f $fConfig ; then

8 source $fConfig

9 fi

10

11 echo The default_printer is: ${default_printer%?}

12

13 echo The name of the default_printer is: $(${default_printer%?})

当我运行该脚本,它返回:

The default_printer is: printer1 

./test.sh: line 13: printer1: command not found

如何我可以修复我的bash脚本,以便它返回以下内容:

The default_printer is: printer1 

The name of the default_printer is: Zebra_GK420D

请注意,由于config.ini文件托管在Windows驱动器上,因此每行最后会返回\r,所以我使用%?删除每行的最后一个字符。这里的危险在于文件中的最后一行最后没有\r。我可以使用什么来代替%?来只删除\r而不是盲目删除最后一个字符?

谢谢。

回答:

答案出现在错误消息中:command not found。看看你的第13行:

echo The name of the default_printer is: $(${default_printer%?}) 

$(command)在bash中用来获取命令的输出。所以你明确地要求将打印机名称作为命令执行,并且可以预见,该命令不存在。试试:

echo The name of the default_printer is: ${default_printer%?} 

以上是 bash根据config.ini文件中默认变量的值使用源读取变量 的全部内容, 来源链接: utcz.com/qa/258743.html

回到顶部