Shell中的特殊变量

Shell 特殊变量功能如下:

$0:当前脚本的文件名
$N:返回第N个参数,N>0
$#:统计传入的变量个数
$*:所有参数列表,代表"$1 $2 … $n",即当成一个整体输出,每一个变量参数之间以空格隔开
$@:所有参数列表,代表"$1" "$2" … "$n" ,即每一个变量参数是独立的
$?:返回上一个命令执行的返回码
$$:返回pid
$!:最后运行的后台Process的pid
$-:列出Set命令设定的Flag
${#*}:传递到脚本中的命令行参数的个数
${#@}:传递到脚本中的命令行参数的个数

 

$*与$@要用双引号引起来;下面是区分"$*"与"$@"的案例:

#!/bin/bash
# script name:b.sh author:qq5201351
# 
for i in "$*";do
  echo $i
done
echo "================="
for i in "$@";do
  echo $i
done

#bash b.sh 1 2 3
执行结果如下:
1 2 3
=================
1
2
3

 

posted @ 2019-04-11 13:06  寻真丶  阅读(15)  评论(0编辑  收藏  举报