zoukankan      html  css  js  c++  java
  • Shell $? $* $@ 等含义

    $0 ------>脚本名

    $1 ------>传入的第一个参数值

    $? ------>脚本执行的结果。成功==0,不成功==非0

    $* ------>所有参数的内容

    $@ ------>所有参数的内容

    $# ------>参数的数量

    $$ ------>表示当前进程的进程号 希望打开一个进程后不再打开另一个

    $! ------>表示后台运行的最后一个进程号

    测试代码如下:

     1 linux-56:/install # cat 2.sh 
     2 #!/bin/sh
     3 echo '$0 == ' $0
     4 echo '$1 == ' $1
     5 echo '$2 == ' $2
     6 echo '$? == ' $?
     7 echo '$* == ' $*
     8 echo '$@ == ' $@
     9 echo '$# == ' $#
    10 echo '$$ == ' $$
    11 echo '$! == ' $!
    12 
    13 ps -ef | grep "2.sh"

    测试结果打印如下:

     1 linux-56:/install # ./2.sh 1 2 3
     2 $0 ==  ./2.sh
     3 $1 ==  1
     4 $2 ==  2
     5 $? ==  0
     6 $* ==  1 2 3
     7 $@ ==  1 2 3
     8 $# ==  3
     9 $$ ==  16169
    10 $! == 
    11 root     16169   307  0 18:29 pts/0    00:00:00 /bin/sh ./2.sh 1 2 3
    12 root     16171 16169  0 18:29 pts/0    00:00:00 grep 2.sh

    参考了下别的资料,显示的是说 $* 和 $@ 的区别在于:

    $*为"1 2 3"(一起被引号包住)
    $@为"1" "2" "3"(分别被包住)
    即$@可以当作数组来用
    注:没实际使用过。待验证。

    突然看到一个很详细的blog:
    http://c.biancheng.net/cpp/view/2739.html
  • 相关阅读:
    putty GB18030乱码
    iptables小复习
    编译安装 openswan-2.6.34
    Windows常用的命令
    MySql实现远程连接
    防盗链
    java判断一个类是否公共类
    oracle sql性能
    状态模式让我们远离战战兢兢
    LVM管理
  • 原文地址:https://www.cnblogs.com/AndyStudy/p/6064813.html
Copyright © 2011-2022 走看看