shell 7 使用者互動 doc

2021-05-09 15:29:56 字數 1557 閱讀 2960

$0

完整程式名

(basename

命令可去掉路徑)

$1第乙個引數,超出9時

$ $# 引數個數

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

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

$$ 當前shell

的pid

$- shell

的一些屬性

$! 前乙個後台程序的

pid

echo `basename $0`              #

獲得程式名

echo $                    #

獲得最後乙個引數

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

遍歷引數

echo $                     #{}

中不能用

$ ,可使用

! 替代

done

for a in $@; do                    #

另一種遍歷的方法,

$@ 換成

$* 也可以

echo $a

done

改變命令列引數的相對位置,預設左移

1位,即

$3變成$2,

$2變成$1,

$1被丟棄

eg:另一種遍歷引數的方法

while [ -n "$1" ]; do

echo $1

shift

done

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

下失敗,但普通終端可以

一次讀入

1行,不能直接以檔名為引數,需要使用

cat等命令

cat a.txt | while read line      #read

重定向的乙個應用吧? do

echo $line

done

printf "format" a1 a2 ...

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

格式控制符同c

shell 7指令碼輸出上色

這塊就記住固定寫法 echo e 033 30m 黑色字 033 0m echo e 033 31m 紅色字 033 0m echo e 033 32m 綠色字 033 0m echo e 033 33m 黃色字 033 0m echo e 033 34m 藍色字 033 0m echo e 033...

shell習題 使用者互動指令碼

1.要求 寫乙個指令碼,執行後,列印一行提示 please input a number 要求使用者輸入數值,然後列印出該數值,然後再次要求使用者輸入數值。直到使用者輸入 end 停止。2.指令碼答案 root liang 2018 06 21 cat a.sh bin bash while tru...

shell互動建立多個使用者

read p 請輸入需要建立使用者的字首 user read p 請輸入需要建立使用者的個數 count read p 請輸入需要建立使用者的密碼 passwd read p 請輸入建立使用者的失效時間 格式yyyy dd mm 空為永久有效 date foriin seq1 count do if...