当前位置: 技术问答>linux和unix
关于unix使用参数导致脚本输出异常(与脚本内直接带参数输出结果不同)
来源: 互联网 发布时间:2016-11-11
本文导语: test.sh: #!/bin/sh PID1=`ps -ef | grep -w $1 | grep -v "grep" | awk '{print $2}'` echo $PID1>./result.txt 执行“test.sh 进程名A” 输出为“1535 28880 28881”,其中第一个1535为进程A的PID,但是第2个和第3个参数不知道是什么 *******...
test.sh:
#!/bin/sh
PID1=`ps -ef | grep -w $1 | grep -v "grep" | awk '{print $2}'`
echo $PID1>./result.txt
执行“test.sh 进程名A”
输出为“1535 28880 28881”,其中第一个1535为进程A的PID,但是第2个和第3个参数不知道是什么
***********************************************************************************************
修改test.sh:
#!/bin/sh
PID1=`ps -ef | grep -w 进程名A | grep -v "grep" | awk '{print $2}'`
echo $PID1>./result.txt
输出为1535,为预期结果
************************************************************************************************
请问为什么会出现这个结果……
#!/bin/sh
PID1=`ps -ef | grep -w $1 | grep -v "grep" | awk '{print $2}'`
echo $PID1>./result.txt
执行“test.sh 进程名A”
输出为“1535 28880 28881”,其中第一个1535为进程A的PID,但是第2个和第3个参数不知道是什么
***********************************************************************************************
修改test.sh:
#!/bin/sh
PID1=`ps -ef | grep -w 进程名A | grep -v "grep" | awk '{print $2}'`
echo $PID1>./result.txt
输出为1535,为预期结果
************************************************************************************************
请问为什么会出现这个结果……
|
执行“test.sh 进程名A”
--------------
你这样执行的话 本身test.sh那个进程里也包含进程名A的名字了 所以grep的时候会把test.sh的进程也找出来!
--------------
你这样执行的话 本身test.sh那个进程里也包含进程名A的名字了 所以grep的时候会把test.sh的进程也找出来!
|
那lz试试修改脚本,临时删除后面的awk,看完整的输出信息
PID1=`ps -ef | grep -w $1 | grep -v "grep"`
PID1=`ps -ef | grep -w $1 | grep -v "grep"`