1. 程式人生 > >026_關於shell中的特殊變量$0 $n $* $@ $! $?

026_關於shell中的特殊變量$0 $n $* $@ $! $?

sys test highlight $@ www. 如果 agen 裏的 單個字符

一、

$n:獲取當前執行的shell腳本的第N個參數,n=1..9,當n為0時表示腳本的文件名,如果n大於9,用大括號括起來like${10}.

$*:獲取當前shell的所有參數,將所有的命令行參數視為單個字符串。
$@:這個程序的所有參數"$1" "$2" "$3" "...",這是將參數傳遞給其他程序的最佳方式,因此TA會保留所有內嵌在每個參數裏的任何空白。
$#:獲取當前shell命令行中參數的總個數。

$_:代表上一個命令的最後一個參數

eg:

cat test.sh
#!/bin/bash
echo $_

sh test.sh 1 2 3 4 5
/bin/sh

$!:代表最後執行的後臺命令的PID

eg:

?  agent git:(master) ? nohup ./falcon-agent  -c  cfg.json &> var/app.log &
[1] 76901
?  agent git:(master) ? ps -p $!
  PID TTY           TIME CMD
76901 ttys000    0:00.01 ./falcon-agent -c cfg.json
?  agent git:(master) ? echo $!
76901
?  agent git:(master) ? ps -p $!
  PID TTY           TIME CMD
76901 ttys000    0:00.02 ./falcon-agent -c cfg.json
?  agent git:(master) ? echo $!
76901

? agent git:(master) ? nohup sh ./test.sh &
[2] 79469
appending output to nohup.out
? agent git:(master) ? echo $!
79469

二、

參考:http://www.111cn.net/sys/linux/79750.htm

026_關於shell中的特殊變量$0 $n $* $@ $! $?