$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...