我在端口4444中杀死进程,但是这可以改变,我有一个变量PORT中的端口,但是我无法找到如何将它放在指令中
netstat -ntlp | awk '$4~/:*4444$/{gsub(/\/.*/,"",$NF);cmd="kill -9 "$NF;system(cmd)}'
我尝试过:
netstat -ntlp | awk '$4~/:*${PORT}$/{gsub(/\/.*/,"",$NF);cmd="kill -9 "$NF;system(cmd)}'
但它不起作用
答案 0 :(得分:1)
Shell变量不会被单引号内的shell扩展。你必须使用 double 引号"
包围你的awk程序,然后更多地转义所附的程序,因为bash会将所有嵌入的$
解释为变量扩展
答案 1 :(得分:1)
Shell变量不会在单引号中展开,但不必须求助于双引号及其过度转义。只需离开单引号字符串!
netstat -ntlp | awk '$4~/:*'${PORT}'$/{gsub(/\/.*/,"",$NF);cmd="kill -9 "$NF;system(cmd)}'
查看${PORT}
如何跟随前半部分的近距离报价,并在下半部分的开始报价之前。
答案 2 :(得分:0)
变量不会在单引号('
)字符串中展开。尝试使用双引号("
)。
答案 3 :(得分:0)
使用双引号并转义其他'$'。