【发布时间】:2017-08-15 19:07:27
【问题描述】:
考虑一下这个陈旧的 BASH 脚本:
g1="f 2.txt"
g2="f1.txt $g1"
cp $g2
失败是因为我向cp 命令传递了三个参数。如何逃避$g1 调用以使其在最后一行仅传递两个(呃,使其工作而不在第三行传递两个变量)?我尝试在它周围加上引号,但没有成功;然后它继续将引号作为参数的一部分传递,这很奇怪。
在我的真实场景中,我有一些可选参数,它们本身带有参数。我想在脚本的顶部将它们全部解析出来,如果没有传入,则将它们的最终解析值留空。
【问题讨论】:
-
不清楚。您实际上要执行什么命令?是
cp f1.txt f\ 2.txt -
请使用您提到的参数更新您的示例。否则像这样引用
g2="f1.txt '$g1' "应该可以工作 -
@GordonDavisson ,我对您的第二个链接感到满意。感谢您发布它。
-
@anubhava ,是的,你理解示例代码的意图。