Linux出现arguments must be process or job IDs 错误

在运行一个杀Tomcat进程重启的脚本出错,具体如下

#!/bin/sh
TOMCAT_HOME="/usr/apps/tomcat-8081"
ID="lsof -i:8081 |grep java |awk '{print $2}'"
echo $ID
echo "kill tomcat"
kill -9 $ID
echo "remover war file"
cd "$TOMCAT_HOME"/webapps
rm -rf webp
rm -rf webp.war
echo "copy war to webapp"
cd /usr/apps/shs/wartemps
cp webp.war "$TOMCAT_HOME"/webapps
cd "$TOMCAT_HOME"/bin
echo "start tomcat"
./startup.sh

问题出现在第三行

ID="lsof -i:8081 |grep java |awk '{print $2}'"

这个地方应该改成:

ID=`lsof -i:8081 |grep java |awk '{print $2}'`

至于这个"`"怎么打出来,就是tab键上面那个键,英文输出。

参考:

https://segmentfault.com/q/1010000005180554

你可能感兴趣的:(Linux,Linux,Shell)