亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 開(kāi)發(fā) > Linux Shell > 正文

Bash Shell腳本學(xué)習(xí)小結(jié)

2020-07-27 19:26:05
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1.字符截?cái)啵?br>
如果是一般路徑的字符截?cái)嗫梢杂胋asename和dirname這兩個(gè)工具:
basename可以從一個(gè)文件路徑中截一個(gè)文件名

例如:

復(fù)制代碼 代碼如下:

$ basename /home/file.tar
file.tar

dirname可以從一個(gè)文件路徑中截到一個(gè)目錄路徑
例如:
復(fù)制代碼 代碼如下:

$ dirname /home/file.tar
/home

不使用外部工具進(jìn)行字符截?cái)?BR>bash有自帶的功能來(lái)對(duì)變量進(jìn)行字符截?cái)?,一般使?##", "#", "%%", "%", "*" 組合來(lái)實(shí)現(xiàn)。例如:
復(fù)制代碼 代碼如下:

$ string=hellowbashshell
$ echo ${string##*sh}
ell
$ echo ${string#*sh}
shell
$ echo ${string%%sh*}
hellowba
$ echo ${string%sh*}
hellowbash

"#"表示從字符開(kāi)始部分除去,一旦匹配則立即除去
"##"表示從字符開(kāi)始部分除去,會(huì)搜整個(gè)字符串最長(zhǎng)的和的匹配來(lái)除去
"%"表示從字符結(jié)束的部分除去,一旦匹配成公則立即除去
"%%"表示從字符結(jié)束的部分開(kāi)始除去,會(huì)搜尋整個(gè)字符穿中最長(zhǎng)的匹配來(lái)除去
"*"統(tǒng)配符,一般與“##”或"#"聯(lián)用時(shí)放在搜索字符串的左邊,例如:${String#*sh}(在sh的左邊),與"%%"或"%"聯(lián)用時(shí)會(huì)放在匹配字符串的右邊,例如:${String%%sh*}

常用技巧:

在路徑中取文件名:${path##*/}(與basename相同功能)
在路徑中取目錄路徑:${path%/*}(與dirname相同功能)
取文件的擴(kuò)展名:${path##*.}

2.自變量的接收

接收來(lái)自命令行傳入的參數(shù),第一個(gè)參數(shù)用$1表示,第二個(gè)參數(shù)$2表示,。。。以此類推。注意:$0表示腳本文件名。另外一個(gè)在shell編程中經(jīng)常用到的是“$@”這個(gè)代表所有的參數(shù),。你可以用一個(gè)循環(huán)來(lái)遍歷這個(gè)參數(shù)。如果用java來(lái)類比的話,可以把$@看作是man函數(shù)中定義的那個(gè)數(shù)組

3.if語(yǔ)句:
格式:

復(fù)制代碼 代碼如下:

if [ condition ]
then
    action
fi

注意:“if”和“[”之間需要空格,如果你不空格,shell會(huì)報(bào)告語(yǔ)法錯(cuò)誤的。我就被這個(gè)浪費(fèi)了好一陣時(shí)間

conditon測(cè)試類型對(duì)照表

運(yùn)算符描述示例
文件比較運(yùn)算符
-e filename如果 filename存在,則為真 [ -e /var/log/syslog ]
-d filename如果 filename為目錄,則為真 [ -d /tmp/mydir ]
-f filename如果 filename為常規(guī)文件,則為真 [ -f /usr/bin/grep ]
-L filename如果 filename為符號(hào)鏈接,則為真 [ -L /usr/bin/grep ]
-r filename如果 filename可讀,則為真 [ -r /var/log/syslog ]
-w filename如果 filename可寫(xiě),則為真 [ -w /var/mytmp.txt ]
-x filename如果 filename可執(zhí)行,則為真 [ -L /usr/bin/grep ]
filename1-nt filename2如果 filename1filename2新,則為真 [ /tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2如果 filename1filename2舊,則為真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比較運(yùn)算符 (請(qǐng)注意引號(hào)的使用,這是防止空格擾亂代碼的好方法)
-z string如果 string長(zhǎng)度為零,則為真 [ -z "$myvar" ]
-n string如果 string長(zhǎng)度非零,則為真 [ -n "$myvar" ]
string1= string2如果 string1string2相同,則為真 [ "$myvar" = "one two three" ]
string1!= string2如果 string1string2不同,則為真 [ "$myvar" != "one two three" ]
算術(shù)比較運(yùn)算符
num1-eq num2等于[ 3 -eq $mynum ]
num1-ne num2不等于[ 3 -ne $mynum ]
num1-lt num2小于[ 3 -lt $mynum ]
num1-le num2小于或等于[ 3 -le $mynum ]
num1-gt num2大于[ 3 -gt $mynum ]
num1-ge num2大于或等于[ 3 -ge $mynum ]

感覺(jué)bash 中的if相比其他的一些語(yǔ)言智能多了,在bash中,測(cè)試一個(gè)文件的存在跟比較兩個(gè)數(shù)字的大小沒(méi)有什么兩樣 ;)

4.for語(yǔ)句

bash里的語(yǔ)句總是那么的人性化,十分的接近自然語(yǔ)言,在for語(yǔ)句中幾乎可以迭代任何類似與集合的數(shù)據(jù)類型(或許這樣個(gè)說(shuō)法不對(duì),但我確實(shí)想不到更好的詞來(lái)代替)。
看一個(gè)例子:
復(fù)制代碼 代碼如下:

#!/bin/bash
for args in $@
do
echo $args
done


把上面這段代碼錄入保存為showargs.sh設(shè)置為可執(zhí)行(chmod +x showargs.sh)執(zhí)行:

復(fù)制代碼 代碼如下:

$ ./showargs.sh arg1 arg2 arg3 arg4
arg1
arg2
arg3
arg4


這個(gè)例子中,我們用到了之“$@”,它代表了所有的命令行參數(shù)。在這里用for對(duì)其進(jìn)行遍歷,系統(tǒng)迭代地從$@中取出命令行參數(shù)把他放到args中,最后使用echo $args進(jìn)行輸出。
for更經(jīng)常用到的是遍歷目錄,下面的例子用于列出當(dāng)前目錄下的所有文件和文件夾的名稱

復(fù)制代碼 代碼如下:

$ for file in *
> do
> echo $file
> done

這里用*代表當(dāng)前目錄,列出的是所有的文件和文件夾的名稱,在這里,文件夾和文件你是分不出來(lái)的,如果你需要,你應(yīng)該用if [-d ${file}]來(lái)做一下判斷。
對(duì)于文件遍歷,更有趣的是,你可以在 “in” 后面接上多個(gè)表達(dá)式。也就是說(shuō),你可以一次在遍歷多個(gè)目錄。

下面這段代碼能把當(dāng)前目錄下go文件夾和do文件夾里的文件復(fù)制到fo文件夾下
復(fù)制代碼 代碼如下:

#!/bin/bash
for args in ./go/* ./do/*
do
cp ${args} ./fo
echo "copying ${args} to ./fo/${args}"
done

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲一区二区少妇| 国产精品一卡二卡在线观看| brazzers精品成人一区| 国产精品久久久免费视频| 91久久极品少妇xxxxⅹ软件| 欧美亚洲人成在线| 亚洲美女一区二区三区| 国产一区99| 日韩欧美一区二区在线观看| 成人黄色免费片| 污网站免费看| 欧美一级本道电影免费专区| 五月天亚洲综合小说网| jizz在线观看中文| 在线观看a级片| 激情五月色婷婷| 欧美一区二区三区四区在线观看地址| 三级国产在线观看| 成人h动漫在线| 中文字幕一区二区三区乱码不卡| 色窝窝无码一区二区三区成人网站| 亚洲最大成人在线观看| 久久久久97国产| 日韩风俗一区 二区| 一区二区三区四区免费视频| 国产7777777| 久久久天堂国产精品| 欧洲金发美女大战黑人| 亚洲欧美网站在线观看| 欧美国产中文高清| 欧美大黑帍在线播放| 中文字幕一区二区三区人妻在线视频| 美女的尿口免费视频| 三级精品视频久久久久| 午夜成人免费视频| 精精国产xxxx视频在线中文版| 久久久久亚洲av无码麻豆| 亚洲一区二区三区四区五区黄| 亚洲伦理在线| 中文字幕在线播放一区二区| 久久人人爽人人爽人人片av高清| 国产中文av在线| 国产日韩久久| 成人欧美一区二区三区在线观看| 午夜一级黄色片| 国产精品视频一区二区三区四| 懂色av.com| 99国产精品久久久久久久成人| 亚洲天堂黄色片| 国产精品久久久久毛片软件| 在线免费看黄av| 成人在线电影网站| 国产一区免费在线| 亚洲欧美一区二区精品久久久| 在线国产福利网站| 国产av无码专区亚洲av| 亚洲一区二区三区网站| 人与牲动交xxxbbb| 香港一级纯黄大片| 日韩在线观看免费av| 色噜噜狠狠一区二区三区狼国成人| av在线播放av| bt电影在线| 一区二区三区久久久久| 日韩亚洲视频在线观看| 青草网在线观看| 国内欧美视频一区二区| 国产成人澳门| 久久亚洲精品毛片| 在线观看涩涩| 一本一道久久a久久综合蜜桃| 性囗交免费视频观看| 丁香婷婷久久久综合精品国产| 免费日韩精品中文字幕视频在线| 色综合五月天导航| 欧美在线免费观看视频| 精品综合久久久久久97| 免费看污黄网站| 国产精品99久久久久久成人| 午夜精品久久久久久久无码| 亚洲成a人v欧美综合天堂麻豆| 无码人妻精品一区二区三| 欧美性受xxxx狂喷水| 日本天堂影院在线视频| 国产精品2018| 欧美黑人又粗又大又爽免费| 国产精品一区二区av影院萌芽| www.1024| 午夜精品久久久久久久久久| 色欲久久久天天天综合网| 久久好看免费视频| 亚洲激情五月| 国产精品久久久久久久久久10秀| 欧美一级大片在线视频| av电影一区二区三区| 污视频在线免费观看| 色偷偷av一区二区三区| 国产一区二区三区在线观看精品| 蜜臀av国产精品久久久久| 丰满少妇乱子伦精品看片| 精品国产免费一区二区三区| 尤物网站在线看| 精品人妻人人做人人爽| www亚洲欧美| 欧美一级久久| 久久久久一本一区二区青青蜜月| 国产精品久久久一区麻豆最新章节| 欧美影院天天5g天天爽| 激情无码人妻又粗又大| 五月婷在线视频| 国产精品十八以下禁看| 免费在线观看一区二区| 日本熟妇人妻xxxxx| 亚洲国产精品成人综合久久久| 日韩欧美高清一区| 天天影视色香欲综合网老头| 丝袜亚洲另类欧美重口| 久久久无码精品亚洲国产| 国产精品国产对白熟妇| 国产成人av在线播放| 国产精品国产三级国产专区51| 欧美亚洲一级片| 亚洲国产精品久久久久婷婷老年| 欧美小视频在线| 先锋av资源网| 免费精品国产自产拍观看| 九九热视频这里只有精品| 日本成人在线电影网| 日韩一区自拍| 成人观看网址| 欧美极品在线视频| 国产在线视频网| www网站在线观看| 国产91网红主播在线观看| 肉肉视频在线观看| 成人国产二区| 日韩欧美成人精品| 91国内精品久久| 大型av综合网站| 欧美日韩在线观看成人| 97最新国自产拍视频在线完整在线看| 日韩一级片一区二区| 久久久久中文字幕| 国产精品麻豆一区| 国产成人综合亚洲网站| 国产在线视视频有精品| 免费看一区二区三区| 亚洲自拍欧美精品| 精品日本高清在线播放| 国产成人小视频| 亚洲视频在线不卡| 亚洲男人天堂2021| 亚洲一级二级片| 亚洲精品午夜久久久| 久久久久久福利| 亚洲同志男男gay1069网站| 麻豆一区二区三区在线观看| 中文字幕亚洲综合| 亚洲午夜18毛片在线看| 超薄肉色丝袜一二三| 国产自偷自偷免费一区| 岛国毛片在线观看| 忘忧草精品久久久久久久高清| 日韩欧美亚洲另类制服综合在线| 久草视频在线免费看| 亚洲第一在线播放| 色播五月综合| 欧美黑人xxxⅹ高潮交| 欧美v日韩v国产v| eeuss在线观看| 18成人免费观看视频| 日本成人7777| 91亚洲午夜精品久久久久久| 亚洲午夜av久久乱码| 福利资源在线观看| 亚洲三区视频| 在线免费观看日韩欧美| 亚洲av永久无码国产精品久久| 九色蝌蚪视频在线| 亚洲一级大片| 国产精品嫩草影院久久久| 男人的天堂色| 色婷婷综合久久久中文字幕| 日本a视频在线观看| 短视频在线观看| 黑人狂躁日本娇小| 亚洲精品午夜国产va久久成人| 国产性猛交普通话对白| 免费又爽又黄禁片视频1000片| 国产精品视频白浆免费视频| 成人看片网站| 欧美精品videossex少妇| 亚洲午夜视频在线观看| 午夜写真片福利电影网| 欧美久久天堂| 国产精品对白交换视频| 日韩三级在线播放| 超碰成人福利| 黄视频在线观看网站| 亚洲视频国产视频| 国产精品不卡| 色94色欧美sute亚洲13| 国产视频福利| 国产一区二区久久久久| 精选一区二区三区四区五区| 手机av在线免费| 精品免费久久久| 视频国产一区二区三区| 成人免费图片免费观看| 中文在线а√天堂官网| 超碰成人在线观看| 97在线视频免费观看完整版| 菠萝蜜影院一区二区免费| 日韩一区二区三区免费观看| 成人在线免费观看视频网站| 色av成人天堂桃色av| www日韩在线观看| jizz内谢中国亚洲jizz| 精品毛片乱码1区2区3区| 亚洲综合欧美色图| 中文字幕精品网| 国产欧美日韩另类一区| 粉嫩欧美一区二区三区高清影视| 在线一区二区三区视频| 人人做人人澡人人爽欧美| 成人黄视频在线观看| 91香蕉视频在线播放| 黄页免费在线观看视频| 少妇高潮av久久久久久| 日韩中文字幕视频| 综合久久国产九一剧情麻豆| 欧美一区二区三区四区久久| 李丽珍裸体午夜理伦片| 美女的尿口免费视频| 亚洲乱码精品一二三四区日韩在线| 亚洲精品欧美日韩| 日韩欧美电影| 性高潮久久久久久久久久| 国产福利精品导航| 2欧美一区二区三区在线观看视频| 日本中文字幕视频| 五月婷婷欧美激情| 免费h网站在线观看| 亚洲精品乱码久久久久久金桔影视| 成色在线视频| 成人午夜电影在线播放| 日韩中文字幕免费在线| 国产成人av在线影院| 亚洲影院天堂中文av色| 欧美在线国产精品| 91丨九色丨尤物| 欧美一级淫片videoshd| 热舞福利精品大尺度视频| 亚洲v在线看| 五月久久久综合一区二区小说| 亚洲精品久久久久中文字幕二区| 欧美成人一区二免费视频软件| 毛片中文在线观看| 国产三级国产精品国产国在线观看| 日韩精品免费一区二区三区竹菊| 欧美一区二区福利在线| 国产精品美女久久| 糖心vlog在线免费观看| 蜜桃av噜噜一区二区三区麻豆| 亚洲男男av| 免费久久99精品国产自在现线| 成人区精品一区二区婷婷| 日本女人一区二区三区| 国产精成人品免费观看| 国际精品欧美精品| 日韩一二三四| 大桥未久av一区二区三区中文| www.91精品| 青青久久av北条麻妃海外网| 美女脱光衣服与内衣内裤一区二区三区四区| www.亚洲欧美| 九九热在线免费观看| 日韩欧美另类一区二区| 欧美精品久久天天躁| 国产亚洲精品精品国产亚洲综合| 久久久水蜜桃av免费网站| 亚洲黑人在线| 精品国产乱码久久久久久1区2匹| 成人97在线观看视频| 亚洲视频观看| 婷婷亚洲一区二区三区| 中文字幕免费精品一区高清| hbad中文字幕| 色综合久久久久久中文网| 无码国产精品一区二区色情男同| 成人图片小说| 色综合一区二区三区| 黄色片免费大全| 亚洲人成电影在线播放| 免费在线观看的电影网站| 88xx成人免费观看视频库| 欧美韩日一区二区三区| 超碰中文在线| mm1313亚洲国产精品美女| 中文一区一区三区免费| 久久久久综合网| 欧美大胆a人体大胆做受| 毛片一区二区三区四区| 欧美亚洲国产精品久久| xx免费视频| 久久9热精品视频| 青青青在线免费观看| 亚洲大胆人体大胆做受1| 精品97人妻无码中文永久在线| 亚洲国产精品一| 国产又大又硬又粗| 亚洲r级在线观看| 日韩精品一区二区三区色偷偷| 国产精品成人无码免费| 国产一区二区视频免费在线观看| 亚洲第一页自拍| 极品国产人妖chinesets亚洲人妖| 成人av观看| 亚洲www啪成人一区二区| 粉嫩一区二区三区性色av| 911精品美国片911久久久| 加勒比在线一区二区三区观看| 宅男在线国产精品| 最新国产麻豆精品| 久久精品av| 成人国产精品日本在线| 午夜精品电影| jizzjizz.con|