日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Bash scripts

發布時間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bash scripts 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

創建新shell腳本

1. 創建包含bash命令的文本文件。文件的第一行應為:

#!/bin/bash
2. 使文件可執行(使用chmod +x scripts)
3. 將文件放置在用戶的$PATH的目錄中
~/bin – 用于用戶的私有程序
/usr/local/bin – 本地開發、系統上的其他人使用的腳本
/usr/local/sbin - 本地開發、由root使用的腳本
直接運行腳本和使用source命令運行腳本是不同的!
腳本調試模式:
#!/bin/bash -x

# bash -x scripts


引用和轉義
引用和轉義在shell解析字符串時用于去除字符串中特殊字符或保留詞語的特殊含義。這會導致按字面處理字符串,而不是展開變量或將其部分內容視作具有特殊含義。
引用有三種類型:
弱引用
將字符串放置在雙引號中,保留字符串中所有字符的文字值,$、`、\和!字符除外。換言之,變量擴展和命令擴展在雙引號內仍起作用。
echo “can I have a $FRUIT”
echo “The current time is $(date +%r).”


強引用
將字符串放置在單引號中,保留字符串中所有字符的文字值,同時禁用所有擴展:
echo “Make $$$ Fast”
rm 'untitled folder'



轉義
非引用的\是轉義字符。它保留了下一個字符的文字值。(例如,\$PATH是確切的字符串$PATH,而
不是PATH變量的內容。)
echo Make \$\$\$ Fast\!
ls untitled\ folder



Shell變量
shell變量用于為稍后在腳本中使用的名稱指定值,并且僅限于shell命令行或從中聲明變量的腳本。


命令替換
命令替換在子shell中執行指定命令并用命令輸出替換腳本中的命令替換。



算術運算符
算術運算符指的是可以在程序中實現加、減、乘、除等數學運算的運算符。



Shell計算命令:
用$[]表示數學運算。
# echo $[1+2]
# a=1; echo $[$[$a+1]*2]


用expr表示數學運算。
# echo `expr 1 + 2`


用let指示數學運算。
# let A=1+2
# echo $A


用(())表示數學運算。bash內建功能,效率高。

#!/bin/bash
for ((i=1;i<10;i++))
do
((j+=i))
done
echo $j


循環
for循環用于值列表中的相同命令的重復。



循環與計算結合:










Bash位置參數

使用位置參數來讀取傳遞給腳本的命令行參數或選項輸入。各種特殊變量存儲傳遞的選項編號
Bash解析的個別參數或整個原始命令行。
指定的位置參數總數:$#
位置參數自身:$0、$1、$2、$3....
所有位置參數: $@、$*






退出狀態
Linux命令完成時,將返回退出狀態。成功完成程序時,將返回0的推出狀態。這被bash
當作邏輯True值。非零退出狀態通常表示發生了錯誤,并且被bash當作邏輯False值。
例如:grep的退出狀態的含義:
0 – 在指定的文件中找到了模式
1 – 在指定的文件中未找到模式
>1 – 一些其他錯誤(無法打開文件、錯誤的搜索表達式等)
推出狀態的值被存儲在"?"中,可以使用以下命令查看:
# echo $?



test條件判斷
test命令可用于評估bash腳本中的表達式。它評估其參數所指定的表達式,如果表達式
為true,返回零退出狀態,如果表達式為false,則返回非零退出狀態。test具有替代語
法,使用方括號"[]"將表達式括起來,這樣更易于閱讀。

-n??????? ##有無數值


-z????? ##是否為空



-e?????? ##是否存在

-d?????? ##類型為目錄i

-f??????? ##類型為文件

-s ????? ##類型為socket

-L?????? ##類型為link



-eq???? ##等于

-ne???? ##不等

-lt??????? ##小于

-le?????? ##小于等于

-gt????? ##大于

-ge???? ##大于等于




if語句
if命令檢查if后面的命令或列表的退出值。如果第一個命令評估為true/零,則運行then之后的命令列表,直至任一else。如果第一個命令評估為false/非零,則運行else與fi之間的命令列表(反向平寫if,標記if塊的結束)。




case語句
case語句 :它能夠把變量的內容與多個模板進行匹配,再根據成功匹配的模板去決定應該執行哪部分代碼.



expect語句
在shell中利用expect實現自動應答腳本。






倒數五秒計時腳本




測試和其他主機是否連通


判斷文件類型



本文轉自Super_MONKEY 51CTO博客,原文鏈接:http://blog.51cto.com/supermk/1940558

總結

以上是生活随笔為你收集整理的Bash scripts的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。