shell 指令碼使用筆記 持續更新

2021-10-09 03:59:47 字數 2152 閱讀 5050

使用注意

小功能實現

buildf=

$(find -iname 'build*' -maxdepth 1 -print)

for fd in$do

if[ -d $fd];

then

echo

"will delete dir: $fd"

rm -rf $fd

fidone

以上:iname表示搜尋不區分大小寫,-maxdepth指定搜尋深度為1,不會遞迴子目錄;if [ -d $fd ]要注意中括號與字元之間要有空格, 意思是 是否存在 目錄$fd-d表示資料夾,-f表示檔案。

export srcipt_folder=

$(cd "$(dirname $0)

";pwd)

cppfilesstr=

$(find $folder -iname '*cpp' -print)

cppfiles=($

)nums=

$# 陣列的size

4.1 登入,regist.sh(此指令碼在伺服器a上)

sshpass -p "password"

ssh [email protected] "sh -s"

< run.sh

4.2 掛載指令碼, mount_target.sh,此指令碼放在伺服器b上 ,假如放在 目錄 /root/data/下。

nfiles=

'ls /root/data/target/ | wc -l'

# nfiles 如果不為0,表示已經掛載,不需要重複掛載

# 將c伺服器 的/data/target目錄,掛載到b伺服器的/root/data/target目錄if[

$nfiles -eq '0'];

then

mount -t nfs -o tcp -o nolock 192.168.99.33:/data/target /root/data/target

fi

4.3 執行掛載和執行程式的指令碼,run.sh (此指令碼在伺服器a上)

cd /root/data/

sh mount_target.sh

cd /root/data/target

pwdls

... # 可以去目標資料夾執行程式

4.3 shell 指令碼用 scp 跨伺服器拷貝,可以用 expect 或者 sshpass,處理輸入密碼的問題。以下是 sshpass示例,也可以在 目標伺服器上執行。

sshpass -p "introcks"

scp -r ./model.bin [email protected]:/data/jenkins/

# 此處 introcks 是 99.11 的密碼

str=

"a b c d efg hij"

#下面以空格為分隔符將str變成乙個陣列,如果要以符號@為分隔符就寫成 array=($)

array=($

)unset array[0]

# 刪去陣列下標為0的元素

for a in$do

echo

"$a"

#遍歷並輸出array中的每個元素

done

######### 構建陣列array2

array2=()

for a in$do

array2=

"$array2

$a"done

array2=($

)

str1=

"models_face_mask.bin"

str2=

$## 從倒數第5個字元開始往後取4個字元,也就是 k.bi

str3=

$## 從下標為2的字元開始往後取4個字元,也就是 dels

# 以上兩種情況,如果捨去長度不寫,也就是str2=$ 或者 str3=$ 那就會取指定字元開始到最後乙個字元。

LaTex使用筆記(持續更新)

眾所周知,要在latex中加入jpg,必須要借助graphicx包的幫助。在導言區加上 usepackage import figures然後在你想插入的地方加上 begin centering includegraphics height 4.5cm,width 9.5cm caption lab...

linux 使用筆記(持續更新)

rm rf compiz cache sudo systemctl restart lightdm dpkg l 列出當前系統中所有的包.可以和引數less一起使用在分屏檢視.dpkg l grep i 軟體包名 檢視系統中與 軟體包名 相關聯的包.以下是一些 dpkg 的普通用法 2 dpkg c...

android使用筆記 持續更新中。。。

今天在eclipse下匯入工程報錯 invalid projectdescription.原因是在eclipse的指定工作空間中 workspace 工程的名稱必須與工程跟目下.project檔案中的名稱一致!搭建好了環境,把之前的工程搬到了新的環境下,結果怎麼開啟都遇到invalid projec...