zoukankan      html  css  js  c++  java
  • Shell脚本中$0、$?、$!、$$、$*、$#、$@


    1. $$
    Shell本身的PID(ProcessID)


    2. $!
    Shell最后运行的后台Process的PID


    3. $?
    最后运行的命令的结束代码(返回值)


    4. $-
    使用Set命令设定的Flag一览


    5. $*
    所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。


    6. $@
    所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。


    7. $#
    添加到Shell的参数个数


    8. $0
    Shell本身的文件名


    9.$1~$n
    添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

    我们先写一个简单的脚本,执行以后再解释各个变量的意义

    mkdir test.sh

    脚本内容如下:

    复制代码
    #!/bin/bash
    
    echo "number:$#"
    echo "scname:$0"
    echo "first :$1"
    echo "second:$2"
    echo "argume:$@"
    复制代码

    保存退出

    wqa!

    赋予脚本执行权限并执行

    1.bash test.sh
    
    2.chmod 755 test.sh
        ./test.sh

    结果:

    number:2
    scname:./variable
    first: aa
    second:bb
    argume:aa bb

    结果分析


    通过显示结果可以看到:
    $# 是传给脚本的参数个数
    $0 是脚本本身的名字
    $1是传递给该shell脚本的第一个参数
    $2是传递给该shell脚本的第二个参数
    $@ 是传给脚本的所有参数的列表

  • 相关阅读:
    AGC037F Counting of Subarrays
    AGC025F Addition and Andition
    CF506C Mr. Kitayuta vs. Bamboos
    AGC032D Rotation Sort
    ARC101F Robots and Exits
    AGC032E Modulo Pairing
    CF559E Gerald and Path
    CF685C Optimal Point
    聊聊Mysql索引和redis跳表
    什么是线程安全
  • 原文地址:https://www.cnblogs.com/keystone/p/13260564.html
Copyright © 2011-2022 走看看