BASH SHELL指令碼語法說明

2021-10-08 08:45:55 字數 1568 閱讀 7146

shift(shift 1) 命令每執行一次,變數的個數($#)減一(之前的$1變數被銷毀,之後的$2就變成了$1),而變數值提前一位。

同理,shift n後,前n位引數都會被銷毀.

#!/bin/sh

arch="$1"

shift

arch2=$1

shift

echo "shell指令碼本身的名字: $0"

echo "傳給shell的第乙個引數: $1"

echo "傳給shell的第二個引數: $2"

echo $arch

echo $arch2

輸入:bash  test.sh 1 data

輸出:

shell指令碼本身的名字: test.sh

傳給shell的第乙個引數:

傳給shell的第二個引數:

1data

$0、$1、$2這樣的符號,這是什麼意思呢? 簡單來說$0就是你寫的shell指令碼本身的名字,$1是你給你寫的shell指令碼傳的第乙個引數,$2是你給你寫的shell指令碼傳的第二個引數 。

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