linux shell $ 特殊变量


$0       #Shell本身的文件名 

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

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

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

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

$$       #Shell本身的PID(ProcessID)

$!       #Shell最后运行的后台Process的PID 

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

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

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

#!/bin/bash
# ./a.sh hello world
printf "scrip name = %s
" "$0"
printf "the first argument = %s
" "$1" 
printf "the second argument = %s
" "$2"
printf "input argument's number %s
" "$#"

printf "PID = %s
" "$$"
printf "PPID = %s
" "$PPID"

nohup sleep 10 > /dev/null 2>&1 &
printf "the last program's PID which has been put background = %s
" "$!"

cat /tmp/asdf.txt > /dev/null 2>&1 
printf "last cmd output = %s
" "$?"

function func
{
    echo "arg1 = $1, arg2 = $2"
}
func "$*"
func "$@"
文章出处:http://www.cnblogs.com/aaron-agu/ 只有毅力和决心才能使人真正具有价值!
原文地址:https://www.cnblogs.com/aaron-agu/p/5532569.html