美文网首页
shell中的变量(二)

shell中的变量(二)

作者: 城堡下的晚祷 | 来源:发表于2019-03-26 12:28 被阅读0次

    特殊变量

    1.$n

    语法:$n
    功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
    案例:
    (1)创建parameter.sh :

    [root@localhost shelldata]# touch parameter.sh
    [root@localhost shelldata]# chmod u+x parameter.sh 
    

    (2)编辑脚本为:

    #!/bin/bash
    echo "下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)"
    echo "$0 $1 $2"
    

    (3)调用脚本:

    [root@localhost shelldata]# ./parameter.sh 
    下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
    ./parameter.sh  
    
    [root@localhost shelldata]# ./parameter.sh hello world
    下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
    ./parameter.sh hello world
    
    2.$#

    语法:$#
    功能描述:获取所有输入参数个数,常用于循环
    案例:
    (1)编辑parameter.sh 为

    #!/bin/bash
    echo "下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)"
    echo "$0 $1 $2"
    echo "参数个数:" $#
    

    (2)调用:

    [root@localhost shelldata]# ./parameter.sh 
    下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
    ./parameter.sh  
    参数个数: 0
    
    [root@localhost shelldata]# ./parameter.sh hello world
    下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
    ./parameter.sh hello world
    参数个数: 2
    
    [root@localhost shelldata]# ./parameter.sh hello world my
    下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
    ./parameter.sh hello world
    参数个数: 3
    
    

    由上面可以看出$#获取的参数个数为实际传入的参数个数。

    3. $* , $@

    语法及功能:
    \$* : 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体

    \$@ : 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
    案例:
    (1)编辑parameter.sh 为

    #!/bin/bash
    echo "下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)"
    echo "$0 $1 $2"
    echo "参数个数:" $#
    echo $*
    echo $@
    

    (2)调用

    [root@localhost shelldata]# ./parameter.sh hello world mytest
    下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
    ./parameter.sh hello world
    参数个数: 3
    hello world mytest
    hello world mytest
    
    4.$?

    语法:$?
    功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。
    案例:

    [root@localhost shelldata]# echo 123
    123
    [root@localhost shelldata]# echo $?
    0
    
    [root@localhost shelldata]# 123
    -bash: 123: command not found
    [root@localhost shelldata]# echo $?
    127
    

    相关文章

      网友评论

          本文标题:shell中的变量(二)

          本文链接:https://www.haomeiwen.com/subject/upcgvqtx.html