shell中 $? $# $* $$ $* $@ $0 特殊变量含义

shell中有一些常用的难记的特殊变量,如下:

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

$0 – 当前脚本文件名

#! /bin/bash
echo $0

$ sh shell.sh 
shell.sh

$n – 第n个参数

#! /bin/bash
echo $1
echo $2
echo $3

$ sh shell.sh a b c
a
b
c

$# – 参数个数

#! /bin/bash
echo $#

$ sh shell.sh a b c
3

$* – 所有参数

#! /bin/bash
echo $*
for i in $*; do
    echo $i
done

$ sh shell.sh a b c
a b c
a
b
c

$@ – 所有参数

#! /bin/bash
echo $*
for i in $*; do
    echo $i
done

$ sh shell.sh a b c
a b c
a
b
c

$? – 上一个命令的返回值

#! /bin/bash
date
echo $?
err_cmd
echo $?

$ sh shell.sh
2021年11月10日 星期三 20时08分38秒 CST
0
shell.sh: line 4: err_cmd: command not found
127

$$ – 当前进程id

#! /bin/bash
echo $$

$ sh shell.sh
57507

你可能还喜欢下面这些文章

linux shell 入门

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shel

Shell中的条件判断语句if的用法

shell中的if语法是最让我头疼的语法之一,它的判断就向使用USB插头一样——拿起来插入不行,翻转再插入还不行,再翻转插入行了!为了搞清楚这部分语言,我收集了一些文章关于if条件判断的用法,希望对你也有些帮助。一、基本语法if [ command ]; then 符合该条件执行的语句fiif [ command ];then 符合该条件执行的语句elif [ command ];then 符合该条件执行的语句else 符合该条件执行的语句fi语法说明bash shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语

shell 变量的定义

shell可以自定义变量,这为shell的编写带来很多方便定义变量定义变量时,变量名不加美元符号($),如:variableName=”value”注意:变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样同时,变量名的命名须遵循如下规则。首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help命令查看保留关键字)。变量定义举例:myUrl=”http://imhuchao.com/tag/bash”myNum=100使用变量使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:your_nam

第一个shell脚本,hello shell

Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种 就足够了。在本文中,我们关注的重点是Bash,也就是Bourne Again Shell,由于易用和免费,Bash在日常工作中被广泛使用;同时,Bash也是大多数Linux系统

程序启动停止脚本

每次启动程序都要敲一堆命令,终止程序都要ps+grep找到程序pid然后kill,太麻烦了!花了点时间写了个程序启动停止脚本,如下:#! /bin/bashreadonly CMD=$1readonly PARAM=$2readonly BIN=”./your_bin”start() { local bin=$1 local param=$2 if [ -f .pid ];then echo “${bin} is running” return 0; fi if [ ${param}”” == “-d” ];then

赞赏

微信赞赏支付宝赞赏

其他

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注