shift(shift 1) 命令每執行一次,變數的個數($#)減一(之前的$1變數被銷毀,之後的$2就變成了$1),而變數值提前一位。
同理,shift n後,前n位引數都會被銷毀.
#!/bin/sh輸入:bash test.sh 1 dataarch="$1"
shift
arch2=$1
shift
echo "shell指令碼本身的名字: $0"
echo "傳給shell的第乙個引數: $1"
echo "傳給shell的第二個引數: $2"
echo $arch
echo $arch2
輸出:$0、$1、$2這樣的符號,這是什麼意思呢? 簡單來說$0就是你寫的shell指令碼本身的名字,$1是你給你寫的shell指令碼傳的第乙個引數,$2是你給你寫的shell指令碼傳的第二個引數 。shell指令碼本身的名字: test.sh
傳給shell的第乙個引數:
傳給shell的第二個引數:
1data
1. $$
shell本身的pid(processid)
2. $!
shell最後執行的後台process的pid
3. $?
最後執行的命令的結束**(返回值)
4. $-
使用set命令設定的flag一覽
5. $*
所有引數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有引數。
6. $@
所有引數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有引數。
7. $#
新增到shell的引數個數
8. $0
shell本身的檔名
9.$1~$n
新增到shell的各引數值。$1是第1引數、$2是第2引數…。
-e filename 如果 filename存在,則為真
-d filename 如果 filename為目錄,則為真
-f filename 如果 filename為常規檔案,則為真
-l filename 如果 filename為符號鏈結,則為真
-r filename 如果 filename可讀,則為真
-w filename 如果 filename可寫,則為真
-x filename 如果 filename可執行,則為真
-s filename 如果檔案長度不為0,則為真
-h filename 如果檔案是軟鏈結,則為真
幾個bash shell指令碼
今天剛學習linux shell程式設計,隨便寫幾個短小的指令碼練練語法,寫了這個才發現,一些命令及引數還是要記住的 例1.這是乙個數 算1 2 3 4 5 bin bash let s 0 p 1 let 表示數 算 while test p le 5 do test命令用於檢查某個條件是否成立,...
Bash Shell指令碼高階
shell指令碼中會有一些命令列中不常用的命令,但是在指令碼中卻非常有用的命令。還有在指令碼中有一些常用的功能,有的是自己專案中見到的,有的是網上搜到的,慢慢積累。echo n please enter a count 加 n表示輸出不換行 mkdir p home user 一次建立多個目錄用於設...
linux基礎bash shell基礎語法
whoami root rstx 53 whoami root建立使用者 useradd root rstx 53 useradd yangtao useradd yangtao root rstx 53 passwd yangtao passwd yangtao changing password...