• Shell中特殊的变量


    $表示当前的进程,当使用echo $$是会输出当前shell的pid

    1 echo $$
    特殊变量列表
    变量含义
    $0 当前脚本的文件名
    $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
    $# 传递给脚本或函数的参数个数。
    $* 传递给脚本或函数的所有参数。
    $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
    $? 上个命令的退出状态,或函数的返回值。
    $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

    脚本文件varlist.sh

    1 #!/bin/bash
    2 
    3 echo "File name: $0"
    4 echo "First parameter: $1"
    5 echo "Second Parameter: $2"
    6 echo "Quoted Values: $@"
    7 echo "Quoted Values: $*"
    8 echo "Total Number of Parameter : $#"

    执行varlist.sh hello world结果输出如下:

    $ sh ./varlist.sh hello world
    File name: ./varlist.sh
    First parameter: hello
    Second Parameter: world
    Quoted Values: hello world
    Quoted Values: hello world
    Total Number of Parameter : 2

    $*与$@的区别:

    当使用""是会出对于他们存在差异,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。 看下面的例子:

     1 #!/bin/bash
     2 #description: use variable
     3 #Author: blacksonny
     4 #Copyright (c)
     5 #Script follows here:
     6 
     7 echo "$*=" $*
     8 echo ""$*"=" "$*"
     9 
    10 echo "$@=" $@
    11 echo ""$@"=" "$@"
    12 
    13 echo "print each param from $*"
    14 for var in $*
    15 do
    16     echo "$var"
    17 done
    18 
    19 echo "print each param from $@"
    20 for var in $@
    21 do
    22     echo "$var"
    23 done
    24 
    25 echo "print each param from "$*""
    26 for var in "$*"
    27 do
    28     echo "$var"
    29 done
    30 
    31 echo "print each param from "$@""
    32 for var in "$@"
    33 do
    34     echo "$var"
    35 done

    输出结果:

     1 $ sh ./varcompare.sh "a" "b" "c" "d"
     2 $*= a b c d
     3 "$*"= a b c d
     4 $@= a b c d
     5 "$@"= a b c d
     6 print each param from $*
     7 a
     8 b
     9 c
    10 d
    11 print each param from $@
    12 a
    13 b
    14 c
    15 d
    16 print each param from "$*"
    17 a b c d
    18 print each param from "$@"
    19 a
    20 b
    21 c
    22 d

    退出状态:

    $? 可以获取上一个命令的退出状态。所谓退出状态,就是上一个命令执行后的返回结果。
    退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1。

  • 相关阅读:
    1.造一个句子先造出 主谓宾 或主系表,或therebe 这个句子就确定了
    电脑族应每天赤脚走15分钟
    10我操介词
    2.在英语句子中,什么时候用助动词do\does ,什么时候用be动词am\is\are?
    6.英语单词末尾的——s,什么时候发S,什么时候发Z
    转 Dll创建一个"日历"窗体(一)
    2012 MultiUniversity Training Contest 2
    最大流 基础
    HDOJ 4006 The kth great number(优先队列)
    树状数组
  • 原文地址:https://www.cnblogs.com/blacksonny/p/4623205.html
Copyright © 2020-2023  润新知