zoukankan      html  css  js  c++  java
  • Shell之特殊变量

    一、特殊变量概述

    在shell中有两类特殊的变量,一类被称为位置变量,另一类被称为进程状态变量。下面列出位置变量和进程状态变量的具体内容:

    • 位置变量
    变量 描述
    $0 获取当前执行的shell脚本的文件名,包括脚本路径
    $n 获取当前执行的shell脚本的第n个参数值,n=1...9,如果n>9,使用括号扩起来$(10)
    $* 获取当前shell的所有参数,将所有的命令行参数当作单个字符串,相当于“$1$2$3...”
    $@ 获取程序的所有的参数,“$1” “$2”...
    $# 获取当前执行的shell脚本后面紧跟的参数个数
    • 进程状态变量
    变量 描述
    $$ 获取当前shell的进程号(PID)
    $! 执行上一个命令的PID
    $? 获取执行上一个指令的返回值(0为成功,非0为失败)
    $_ 在此之前执行的命令或脚本的最后一个参数

    二、位置变量

    1、$0

    [root@localhost project]# cat test.sh 
    echo $0
    [root@localhost project]# sh test.sh 
    test.sh
    
    [root@localhost project]# sh `pwd`/test.sh
    /project/test.sh

    2、$n

    [root@localhost project]# cat test.sh 
    echo $1
    [root@localhost project]# sh test.sh xiaoshen
    xiaoshen
    [root@localhost project]# sh test.sh xiaoshen xiaozhang
    xiaoshen
    [root@localhost project]# sh test.sh "xiaoshen xiaozhang"
    xiaoshen xiaozhang

    $1表示接收一个参数,加引号表示一个参数。

    3、$*

    [root@localhost project]# cat test.sh 
    echo $*
    
    [root@localhost project]# sh test.sh xiaoshen xiaozhang
    xiaoshen xiaozhang

    4、$@

    [root@localhost project]# cat test.sh 
    echo $@
    [root@localhost project]# sh test.sh xiaoshen xiaozhang
    xiaoshen xiaozhang

    5、$#

    [root@localhost project]# cat test.sh 
    echo $1
    echo $#
    
    [root@localhost project]# sh test.sh xiaoshen xiaozhang
    xiaoshen
    2

    三、进程状态变量

    1、$$ 

    [root@localhost project]# echo $$
    1973

      $$另一个应用是总是启动同一个脚本,如果该脚本已经启动,可以kill掉然后重启,可以先将该脚本运行后的pid存入到文本文件,如果再次运行该脚本,先去读取pid,kill掉重启。

    #!/bin/sh
    PID_PATH=/project/a.pid 
    if [ -f "$PID_PATH" ] 
       then
          kill -USER2 `cat $PID_PATH`>/dev/null 2>&1
          rm -f $PID_PATH
    fi
    echo $$>$PID_PATH
    sleep 200

    2、$?

    [root@localhost project]# echo $$
    1973
    [root@localhost project]# echo $?
    0
  • 相关阅读:
    利用Ajax调用controller方法并传递参数
    JS禁用右键+禁用Ctrl+u+禁用F12
    Web端即时通讯、消息推送的实现
    JS禁用微信复制链接、禁用转发
    模拟时钟
    CefSharp 设置cookie
    WinForm使用CefSharp内嵌chrome浏览器
    cefsharp 获取高度
    S 禁止F12和右键操作控制台,兼容各浏览器
    JS判断手机浏览器内核
  • 原文地址:https://www.cnblogs.com/shenjianping/p/14269872.html
Copyright © 2011-2022 走看看