shell--特殊位置參數變量及常用內置變量
1.shell中的特殊位置參數變量
$0:獲取當前執行的shell腳本的文件名,如果執行腳本包含了路徑,那麽就包括腳本路徑
$n:獲取當前執行的shell腳本的第n個參數,n=1..9,當n為0時表示腳本的文件名;如果n大於9,則用大括號括起來
比如${10},接的參數以空格隔開
$#:獲取當前執行的shell腳本後面接的參數的總個數
$*:獲取當前shell腳本所有傳參的參數,[email protected];如果給$*加上雙引號,如"$*",則表示把所有的參數視
為單個字符串,相當於"$1 $2 $3"
$@:獲取當前shell腳本所有傳參的參數,不加引號和$*相同;加上雙引號,如"$@",則表示將所有的參數視為不同的
獨立字符串,相當於"$1" "$2" "$3" "..." 這是將多參數傳遞給其他程序的最佳方式,因為它會保留所有的內嵌
在每個參數裏的任何空白。
2.shell進程中的特殊狀態變量
$?:獲取執行上一個指令的執行狀態返回值(0為成功,非0為失敗),常用
$$:獲取當前執行的shell腳本的進程號(PID),不常用
$!:獲取上一個在後臺工作的進程的進程號(PID),不常用
$_:獲取在此之前執行的命令或腳本的最後一個參數,不常用
3.bash shell內置變量命令
bash shell包含一些內置命令。這些內置命令在目錄列表裏是看不見的,它們由shell本身提供。常用的內部命令有:
echo、eval、exec、export、read、shift。
echo:在屏幕上輸出信息
命令格式:echo args
參數:
-n:不換行輸出內容
-e:解析轉義字符
轉義字符:
\n:換行
\r:回車
\t:制表符(tab)
\b:退格
\v:縱向制表符
eval:
命令格式:eval args
功能:當shell程序執行到eval語句時,shell讀入參數args,並將它們組合成一個新的命令,然後執行
exec:
[[email protected] script]# vim exec.sh
[[email protected] script]# cat exec.sh
#!/bin/bash
exec </script/1.txt
while read line
do
echo $line
done
echo ok
[[email protected] script]# seq 5 > 1.txt
[[email protected] script]# cat 1.txt
1
2
3
4
5
[[email protected] script]# sh exec.sh
1
2
3
4
5
ok
本文出自 “IT看看看” 博客,請務必保留此出處http://jinlong.blog.51cto.com/3276088/1954810
shell--特殊位置參數變量及常用內置變量