zoukankan      html  css  js  c++  java
  • Linux Shell基础 位置参数变量、预定义变量

    位置参数变量

    在 Linux 的命令行中,当一条命令或脚本执行时,后面可以跟多个参数,我们使用位置参数变量来表示这些参数。其中,$0 代表命令行本身,$1 代表第 1 个参数,$2 代表第 2 个参数,依次类推。当参数个数超过 10 个时,就要用大括号把这个数字括起来,例如,${10} 代表第 10 个参数,${14} 则代表第 14 个参数。举个例子:

    [root@localhost ~]# ls anaconda-ks.cfg install.log install.log.syslog

    $0 的值就是 ls 命令本身,$1 的值就是 anaconda-ks.cfg 这个文件,$2 是 install.log 文件,$3 是 install.log.syslog 文件。在 Shell 中可以识别的位置参数变量如表 1 所示。

    位置参数变量作 用
    $n n 为数字,$0 代表命令本身,$1〜$9 代表第 1〜9 个参数,10 以上的参数需要用大括号包含, 如${10}
    $* 这个变量代表命令行中所有的参数,把所有的参数看成一个整体
    $@ 这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区别对待
    $# 这个变量代表命令行中所有参数的个数

    预定义变量 

     预定义变量是在 Shell 一开始时就定义的变量,这一点和默认环境变量有些类似。不同的是,预定义变量不能重新定义,用户只能根据 Shell 的定义来使用这些变量。

    预定义变量

    作 用

    $?

    最后一次执行的命令的返回状态。如果这个变量的值为 0,则证明上一条命令正确执行;如果这 个变量的值为非 0 (具体是哪个数由命令自己来决定),则证明上一条命令执行错误

    $$

    当前进程的进程号(PID)

    $!

    后台运行的最后一个进程的进程号(PID)

    "$?"示例

    [root@localhost sh]# ls
    hello.sh  #ls命令正确执行
    [root@localhost sh]# echo $?
    0

    变量"$?"返回一个0的值,说明上一条命令已经正确执行,如果执行错误"$?"会返回非0。 

    "$$"示例

    [root@localhost sh]# vi hello.sh
    #!/bin/bash
    echo "The current process is $$"

    输出当前进程的PID

    "$!"示例

    find /root -name hello.sh &

    使用find命令在/root目录下査找hello.sh文件,符号"&"的意思是把命令放入后台执行。

  • 相关阅读:
    POJ1741 Tree
    BZOJ3674 可持久化并查集加强版
    BZOJ3673 可持久化并查集 by zky
    BZOJ3174 [Tjoi2013]拯救小矮人
    BZOJ2733 永无乡【splay启发式合并】
    AtCoder Grand Contest 007 E:Shik and Travel
    BZOJ2599:[IOI2011]Race
    AtCoder Regular Contest 063 E:Integers on a Tree
    SPOJ1825:Free Tour II
    AtCoder Grand Contest 012 C:Tautonym Puzzle
  • 原文地址:https://www.cnblogs.com/lizhouwei/p/9997883.html
Copyright © 2011-2022 走看看