shell(7) 使用者互動.doc

來源:互聯網
上載者:User
命令列參數,
positional parameter

$0
完整程式名
(basename
命令可去掉路徑
)

$1
第一個參數,超出
9

${10}

$#
參數個數

$*
命令列中的所有參數,作為一個單詞

$@
命令列中的所有參數,作為多個單詞

$$
當前
shell

PID

$- shell
的一些屬性

$!
前一個後台進程的
PID

 

echo
`basename $0`             
#

獲得程式名

echo
${!#}        
   
      
#

獲得最後一個參數

for((i=1;
i<=$#; ++i)); do  
#

遍曆參數

   
echo ${!i}                    
#{}

中不能用
$

,可使用
!

替代

done

for a
in $@; do     
      
      
#

另一種遍曆的方法,
$@

換成
$*

也可以

   
echo $a

done

 

shift
命令

改變命令列參數的相對位置,預設左移
1
位,即
$3
變成
$2

$2
變成
$1

$1
被丟棄

eg:
另一種遍曆參數的方法

while
[ -n "$1" ]; do

   
echo $1

   
shift

done

 

getopts
分析參數

 

read
,擷取使用者輸入

read 

                  
#
讀入到變數
$REPLY

read name             
#
讀入到
name

read -p "input your name:" name         
#
帶提示的
read

read name age  
         
#
讀入以空格分隔的多個變數

read -t 5 name 
          
#
等待
5
秒,逾時返回失敗

if
read -t 5 name, then

read
-n1 -p "input [Y/N]" answer

#

設定讀入的字元數——讀入一個字元,這樣無須斷行符號,在
emacs

下失敗,但終端可以

read
-s -p "input pwd" pwd  
      
#

不顯示輸入,
emacs

下失敗,但普通終端可以

 

read
,讀入檔案

一次讀入
1
行,不能直接以檔案名稱為參數,需要使用
cat
等命令

cat
a.txt | while read line     
#read

重新導向的一個應用吧?

do

      
echo $line

done

 

輸出

printf "format" a1 a2 ...

eg:
printf "af 0x%x" 11              
#

格式控制符同
c

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.