shell 指令碼的學習例子1

2021-06-29 04:58:49 字數 1081 閱讀 9235

打包檔案系統img的指令碼如下:

#!/bin/sh

if [ $# != 2 ]; then

echo "usage:$0 size_in_mb fs_floder_name"

else

rm -fr mnt

mkdir mnt

dd if=/dev/zero of=./$2.img bs=1m count=$1

echo "y" | mkfs.ext4 -b 4096 ./$2.img

sudo mount -o loop $2.img ./mnt

sudo cp -a $2/* ./mnt/

sync

sudo umount ./mnt/

fi$0 這個程式的執行名字

$n 這個程式的第n個引數值,n=1..9

$* 這個程式的所有引數,此選項引數可超過9個。

$# 這個程式的引數個數

$$ 這個程式的pid(指令碼執行的當前程序id號)

$! 執行上乙個背景指令的pid(後台執行的最後乙個程序的程序id號)

$? 執行上乙個指令的返回值 (顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤)

$- 顯示shell使用的當前選項,與set命令功能相同

$@ 跟$*類似,但是可以當作陣列用

$^ 所有的依賴目標的集合。以空格分隔。如果在依賴目標中有多個重複的,那個這個變數

會去除重複的依賴目標,只保留乙份。

$@   表示規則中的目標檔案集。在模式規則中,如果有多個目標,那麼,"$@"就是匹配於

目標中模式定義的集合。

$@ the file name of the target of the rule.

$^ the names of all the prerequisites, with spaces between them.

$< the name of the first prerequisite.

./mkext4img.sh 200 fs1

會生成新的fs1.img

$0  ./mkext4img.sh

$1  200

$2  fs1

shell指令碼學習1

在工作的時候接觸到了shell指令碼,不過我沒有自己寫過,但是又因為當時對shell有了興趣,所以我就抽了一點時間,來學習shell指令碼的語法結構,這裡只是基本的shell語法,更高深的在以後可能會接觸。一 shell分類 1 bourne家族 sh,bash 標準shell pshell,zsh...

Shell 指令碼學習1

目錄 1.批量生成 2.批量修改 3.批量生產使用者 4.生產隨機密碼 5.批量判斷網路10.0.0.內的主機是否通訊 6.sed 命令使用 7.gawk 命令使用 8.gawk 正規表示式 9.sed 單詞替換空白行處理 10.sed 處理文字反轉指令碼 11.sed 清除html標籤 12.特殊...

shell指令碼學習(1)

vim shell name.sh 指令碼名要切合實際,見名思意 指令碼第一行 bin bash 表示指令碼以bash解釋,指定shell解釋 bin bash command1 command2 command3 依照命令的先後從上往下執行.shell name.sh 以這種方式執行shell指令...