我正在编写一个 Bash 脚本,其中我正在运行一个 perl 脚本,该脚本需要其中包含双引号的标志。正常运行脚本,你会运行
$ perl script.pl -flag="something" -anotherflag="somethingelse"
在我的脚本中,我在这些标志中使用变量,但想保留双引号,所以我有类似的东西:
variable=foo
perl script.pl -flag=\"something\" -anotherflag=\"$variable\"
当我运行时bash -x myscript.sh
,我看到它在整个标志周围添加了单引号,同时保持双引号,导致 perl 脚本出错:
perl script.pl '-flag="something"' '-anotherflag="foo"'
我也尝试eval
了整个事情(eval perl [...]
),它完全去掉了双引号。如何让 Bash 在双引号完整的情况下运行脚本?