1. 程式人生 > >shell--特殊位置參數變量及常用內置變量

shell--特殊位置參數變量及常用內置變量

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--特殊位置參數變量及常用內置變量