q9989 发表于 2018-8-27 08:12:16

shell-进程状态变量

  $?用于对上一个命令有没有执行成功的判断。
  如果返回为0则说明执行成功,如果返回为其他数值则失败。

  # zhouziqi
  bash: zhouziqi: command not found
  # echo $?
  127
  #
  $$是获取当前shell的进程号。一般,我们有新的脚本的时候,我们要把旧的脚本杀掉的话,可以通过$$获取到当前shell脚本的进程号,一般是比如:
  # cat 1.sh
  echo "$$" > /root/a.log
  while true
  do
  uptime
  sleep 2
  done
  # vim a.
  a.loga.sh
  # vim a.log
  # sh 1.sh &
   24492
  #14:07:40 up9:31,2 users,load average: 0.00, 0.00, 0.00
  14:07:42 up9:31,2 users,load average: 0.00, 0.00, 0.00
  看看a.log文件可以看到这个脚本的进程号,这样我们就可以杀死这个进程啦
  # cat 58.sh
  #!/bin/bash
  tar zcf service.tar.gz *>&/dev/null
  [ $? -eq 0 ] && echo ok
  上面的意思是创建一个tar文件,把文件的输出信息给垃圾箱,然后判断上面的命令有没有成功,如果成功就输出OK

页: [1]
查看完整版本: shell-进程状态变量