Shell Script (一)基礎(chǔ)學(xué)習(xí)

Shell Script

  • 定義:shell script 是利用shell的功能所寫的一個“程序”(program)呻顽,這個程序是使用純文本文件贫母,將一些shell的語法和命令(含外部命令)寫在里面,搭配正則表達(dá)式、管道命令與數(shù)據(jù)流重定向等功能,以達(dá)到我們想要的處理目的都办。
  • 簡單理解:shell script 可以簡單被看成批處理文件,也可以被說成一個程序語言(shell提供數(shù)組虑稼、循環(huán)琳钉、條件與邏輯判斷等功能),而這個程序語言由于都是利用shell與相關(guān)工具命令蛛倦,所以不需要編譯即可執(zhí)行歌懒,且擁有不錯的拍錯(debug)工具。
  • 執(zhí)行方式:(必須具備可讀和可執(zhí)行權(quán)限)
    • 絕對路徑: /home/leiyang/shell.sh
    • 相對路徑: 工作目錄在/home/leiyang/,直接使用./shell.sh執(zhí)行溯壶。
    • 變量PATH: 將shell.sh放到PATH指定目錄及皂,例如:~/bin/
  • 新建shell
    • 運行方式一: sh shell.shbash shell.sh運行
    • 運行方式二: chmod a+x shell.sh, ./shell.sh
    • 這兩種方式是在子進(jìn)程執(zhí)行的,當(dāng)進(jìn)程完成后且改,子進(jìn)程的各項變量或操作將會結(jié)束而不會回傳到父進(jìn)程验烧。
    • 把變量回傳到父進(jìn)程方式 source shell.sh
  • sh01.sh
  • 顯示與終結(jié)程序
#!/bin/bash
echo -e "Hello world! \a \n"
exit 1
echo $?

# exit n(n是數(shù)字,可以自定義錯誤信息)讓程序中斷钾虐,并且回傳一個值給系統(tǒng),若接著執(zhí)行echo $? 可得到n值笋庄。
  • sh02.sh
  • 用戶的輸入與顯示
#!/bin/bash
read -p "Please input your first name:" firstname # 提示用戶輸入
read -p "Please input your last name:" lastname # 提示用戶輸入
echo -e "\nYour full name is : $firstname $lastname" # 顯示輸出結(jié)果

  • sh03.sh
  • 創(chuàng)建文件 輸入文件名當(dāng)前日期和前一天和前兩天日期拼接
#!/bin/bash
# 1.讓用戶輸入文件名效扫,并取得fileuser變量;
echo -e "I will use 'touch' command to create 3 files." # 純文字顯示
read -p "Please input your filename:" fileuser # 提示用戶輸入

# 2.避免用戶隨意按鍵[Enter],利用變量功能分析文件名是否設(shè)置;
filename=${fileuser:-"finename"}  # 判斷是否配置文件名
echo "$fileuser"

# 3.利用date命令獲取所需要的文件名;
date1=$(date --date='2 days ago' +%Y%m%d)
date2=$(date --date='1 days ago' +%Y%m%d)
date3=$(date +%Y%m%d)
echo "$date1"
echo "$date2"
echo "$date3"
file1=${filename}${date1}
file2=${filename}${date2}
file3=${filename}${date3}
echo $file1
echo $file2
echo $file3

# 4.創(chuàng)建文件;
touch $file1
touch $file2
touch $file3

  • sh04.sh
  • 數(shù)值運算
  • $((運算內(nèi)容))
  • bash shell默認(rèn)僅支持整數(shù)類型,可以進(jìn)行 +直砂、-菌仁、*、/静暂、%運算济丘。
#!/bin/bash
total=$(( 13 * 3 ))
echo "13 * 3 = $total"
echo $(( 13 % 3 ))
  • Shell 字符串
    • 字符串是shell編程中最常用最有用的數(shù)據(jù)類型(除了數(shù)字和字符串,也沒啥其它類型好用了)洽蛀,字符串可以用單引號摹迷,也可以用雙引號,也可以不用引號郊供。單雙引號的區(qū)別跟PHP類似峡碉。

    • 單引號

      str='this is a string'
      
    • 單引號字符串的限制:

      • 單引號里的任何字符都會原樣輸出,單引號字符串中的變量是無效的驮审;
      • 單引號字串中不能出現(xiàn)單引號(對單引號使用轉(zhuǎn)義符后也不行)鲫寄。
    • 雙引號

      your_name='qinjx'
      str="Hello, I know your are \"$your_name\"! \n"
      
    • 雙引號的優(yōu)點:

      • 雙引號里可以有變量
      • 雙引號里可以出現(xiàn)轉(zhuǎn)義字符
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吉执,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子地来,更是在濱河造成了極大的恐慌戳玫,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件未斑,死亡現(xiàn)場離奇詭異咕宿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)颂碧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門荠列,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人载城,你說我怎么就攤上這事肌似。” “怎么了诉瓦?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵川队,是天一觀的道長。 經(jīng)常有香客問我睬澡,道長固额,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任煞聪,我火速辦了婚禮斗躏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昔脯。我一直安慰自己啄糙,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布云稚。 她就那樣靜靜地躺著隧饼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪静陈。 梳的紋絲不亂的頭發(fā)上燕雁,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機(jī)與錄音鲸拥,去河邊找鬼拐格。 笑死,一個胖子當(dāng)著我的面吹牛刑赶,可吹牛的內(nèi)容都是我干的禁荒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼角撞,長吁一口氣:“原來是場噩夢啊……” “哼呛伴!你這毒婦竟也來了勃痴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤热康,失蹤者是張志新(化名)和其女友劉穎沛申,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姐军,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡铁材,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奕锌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片著觉。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惊暴,靈堂內(nèi)的尸體忽然破棺而出饼丘,到底是詐尸還是另有隱情,我是刑警寧澤辽话,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布肄鸽,位于F島的核電站,受9級特大地震影響油啤,放射性物質(zhì)發(fā)生泄漏典徘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一益咬、第九天 我趴在偏房一處隱蔽的房頂上張望逮诲。 院中可真熱鬧,春花似錦幽告、人聲如沸梅鹦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帘瞭。三九已至淑掌,卻和暖如春蒿讥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抛腕。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工芋绸, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人担敌。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓摔敛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親全封。 傳聞我的和親對象是個殘疾皇子马昙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355