该命令通过bash -c
失败:
bash -c 'sudo lspci -vvv | awk \'/System peripheral/ {portn=$1} /Status:/ {split($3,a,"M");printf "%s\n",a[1]}\''
-bash:意外令牌附近的语法错误`('
如果直接在控制台sudo lspci -vvv | awk '/System peripheral/ {portn=$1} /Status:/ {split($3,a,"M");printf "%s\n",a[1]}'
如何覆盖'('在命令字符串中为bash -c?
答案 0 :(得分:3)
你不能用单引号转义单引号。它不起作用。
您的命令被视为
sudo lspci -vvv | awk /System peripheral/ {portn=$1} /Status:/ {split($3,a,"M");printf "%s\n",a[1]}
失败了。
要在单个引号字符串中放置单引号,您需要使用'\''
。
所以你的命令变为:
bash -c 'sudo lspci -vvv | awk '\''/System peripheral/ {portn=$1} /Status:/ {split($3,a,"M");printf "%s\n",a[1]}'\'