我正在为我的设备写脚本。 这是我最初的代码:为什么awk中的双引号导致语法错误
dev_name=random_sting
major=`awk "\$2 ~ /^${dev_name}\$/ { print \$1 }" /proc/devices`
然后错误发生
awk: ~ /^random_string$/ { print }
awk:^syntax error
同时,我做了一个实验:
var1=random_string
echo "\$ /^$var1\$/ \$"
产量为
$ /^random_string$/ $
我t似乎语法应该是正确的,任何人都可以给我一个答案?
不,您需要使用单引号而不是双引号来分隔awk脚本。请参阅@ user0001的答案。 – 2013-02-24 12:55:37
他也可以这样做,或者两者兼而有之。我也会使用单引号,但是如果他希望使用双引号,那么将反引号改为'$(..)'应该足以使其工作。 – Scrutinizer 2013-02-24 13:18:49
使用双引号是绝对错误的做法。它使你的脚本变得更加复杂,难以增强和未来,并且容易出错而仅使用单引号。 – 2013-02-25 02:20:41