shell腳本編程與nohup &

1桦踊,shell相關(guān)概念簡(jiǎn)介

1)shell椅野,C語(yǔ)言編寫,是命令語(yǔ)言又是程序設(shè)計(jì)語(yǔ)言。
2)shell程序從腳本中逐行讀取并執(zhí)行命令竟闪。交互式:解釋執(zhí)行用戶輸入的命令离福,批處理:一次將腳本中的命令執(zhí)行完。
3)常見的shell(解釋器)瘫怜,bash(linux默認(rèn)的)术徊、sh、csh鲸湃、ksh赠涮、zsh等。
4)解釋型語(yǔ)言(腳本語(yǔ)言)暗挑,執(zhí)行時(shí)讀取源碼(source code)轉(zhuǎn)換成目標(biāo)代碼(object code)笋除,再由計(jì)算機(jī)執(zhí)行。由于沒有預(yù)先編譯炸裆,效率一般略低于編譯性語(yǔ)言

2垃它,語(yǔ)法相關(guān)

1)#! 開頭約定,告訴系統(tǒng)使用哪一種解釋器來(lái)執(zhí)行烹看。which sh国拇; which bash
2)給腳本賦予可執(zhí)行的權(quán)限。chmod +x ./hzq.sh惯殊,文件的擴(kuò)展名不影響腳本的執(zhí)行酱吝。./hzq.sh執(zhí)行腳本,若直接hzq.sh會(huì)在環(huán)境變量path中尋找hzq.sh命令
3)定義變量土思。var="hzq"變量名和等號(hào)之間不能有空格务热。首字符為字母,不能有標(biāo)點(diǎn)和空
使用變量己儒。${var}推薦加上花括號(hào)崎岂。
4)特殊變量。
$0:當(dāng)前腳本名稱闪湾。
$n:傳遞給腳本的第n個(gè)參數(shù)
$#:參數(shù)的個(gè)數(shù)
$* 或者$@:所有參數(shù)
$?:上個(gè)命令的退出狀態(tài)或者函數(shù)的返回值冲甘。執(zhí)行成功會(huì)返回 0,失敗返回 1响谓。
$$:當(dāng)前shell進(jìn)程的pid损合。
5)轉(zhuǎn)義與替換。
echo "hzq\n" hzq\n
echo -e "hzq\n" hzq
命令替換是shell先執(zhí)行命令娘纷,將結(jié)果保存嫁审。
DATE=`date`
echo "Date is ${DATE}"
6)expr 表達(dá)式計(jì)算
算數(shù)運(yùn)算符
var=`expr 2 \* 3`
echo "2 * 3 :${var}"
關(guān)系運(yùn)算符
if [${a} -lt 100 -a $ -gt 15]
then
echo "a < 100 && b > 15"
fi
布爾運(yùn)算符
-o:或赖晶, -a:與律适,!:非
字符串測(cè)試運(yùn)算符
=:相等辐烂,-z:長(zhǎng)度是否為0,-n:長(zhǎng)度不為0返回true捂贿,str:[$a]不空返回true
文件測(cè)試運(yùn)算符
-d file:目錄測(cè)試纠修,-f file:普通文件,-r厂僧、-w扣草、-x權(quán)限測(cè)試,-e 文件或者目錄存在測(cè)試颜屠。
7)重定向
command > file 輸出重定向辰妙,覆蓋
command >>file 輸出重定向,追加
command <file 輸入重定向到文件
8)文件包含甫窟。(將外部腳本合并到當(dāng)前腳本)
. filename 或者 source filename被包含的腳本不需要有執(zhí)行權(quán)限

3密浑,注意點(diǎn)

1)注釋可以使用函數(shù)封裝,不調(diào)用java function fun(){注釋內(nèi)容 }
2)單引號(hào)字符串:原樣輸入粗井,變量無(wú)效尔破。不能出現(xiàn)單引號(hào),轉(zhuǎn)義也不行浇衬。
雙引號(hào)字符串:可以有變量懒构,可以出現(xiàn)轉(zhuǎn)義字符。
3)重定向耘擂。
stdin:標(biāo)準(zhǔn)輸入痴脾,一般指鍵盤設(shè)備,文件描述符為0 stdout:標(biāo)準(zhǔn)輸出梳星,一般指顯示器,文件描述符為1 stderr:標(biāo)準(zhǔn)錯(cuò)誤滚朵,一般指顯示器冤灾,文件描述符為2
將標(biāo)準(zhǔn)輸入重定向到文件,將stdout和stderr標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤辕近,重定向到文件韵吨。command < file1 >> file2 2>&1n > &m將輸出文件n和m合并
command > /dev/null 2>&1,執(zhí)行命令command移宅,屏蔽輸出归粉。/dev/null特殊文件,寫入的內(nèi)容都會(huì)被丟棄

4漏峰,符號(hào)糠悼。

1)[] 單中括號(hào)用于算數(shù)比較或者文件測(cè)試。echo [ $RETVAL = 0 ] ; echo [ -d $var ];
2)[[]]雙中括號(hào)浅乔。用于比較字符串是否相等倔喂。[[ $str1 = $str2 ]]
3)$()括號(hào)或者``都可以用來(lái)包含命令組铝条。
4){}取變量的值。

5席噩,常用語(yǔ)法

反引號(hào)表示:引用的字符將被視為shell命令來(lái)執(zhí)行班缰。
1,獲取一條命令的輸出結(jié)果悼枢。
var=`ps -C java --no-heading|wc -l`

2埠忘,var=`ps -C maxscale --no-heading|wc -l`
或者var=$(ps -C java --no-heading | wc -l)

3,for...do...done循環(huán)馒索。
for i in `cat roomId.csv`;
do cat -n /usr/local/tomcat/.../..log | grep "dddafefe";
done;

5,

1)./a.sh &莹妒,&對(duì)SIGINT 信號(hào)免疫程序終止(interrupt)信號(hào), 在用戶鍵入INTR字符(通常是Ctrl-C)時(shí)發(fā)出,用于通知前臺(tái)進(jìn)程組終止進(jìn)程双揪。Ctrl + C动羽,a.sh照樣運(yùn)行。
2)nohup的意思是忽略SIGHUP信號(hào)渔期。本信號(hào)在用戶終端連接(正吃讼牛或非正常)結(jié)束時(shí)發(fā)出
nohup ./a.sh
3)nohup ./a.sh & 并且不要直接關(guān)閉term終端,需要ctrl + D退出疯趟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拘哨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子信峻,更是在濱河造成了極大的恐慌倦青,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盹舞,死亡現(xiàn)場(chǎng)離奇詭異产镐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)踢步,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門癣亚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人获印,你說(shuō)我怎么就攤上這事述雾。” “怎么了兼丰?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵玻孟,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我鳍征,道長(zhǎng)黍翎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任艳丛,我火速辦了婚禮玩敏,結(jié)果婚禮上斗忌,老公的妹妹穿的比我還像新娘。我一直安慰自己旺聚,他們只是感情好织阳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著砰粹,像睡著了一般唧躲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碱璃,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天弄痹,我揣著相機(jī)與錄音,去河邊找鬼嵌器。 笑死肛真,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的爽航。 我是一名探鬼主播蚓让,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼讥珍!你這毒婦竟也來(lái)了历极?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤衷佃,失蹤者是張志新(化名)和其女友劉穎趟卸,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氏义,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锄列,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了惯悠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片右蕊。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖吮螺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情帕翻,我是刑警寧澤鸠补,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站嘀掸,受9級(jí)特大地震影響紫岩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜睬塌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一泉蝌、第九天 我趴在偏房一處隱蔽的房頂上張望歇万。 院中可真熱鬧,春花似錦勋陪、人聲如沸贪磺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)寒锚。三九已至,卻和暖如春违孝,著一層夾襖步出監(jiān)牢的瞬間刹前,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工雌桑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留喇喉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓校坑,卻偏偏與公主長(zhǎng)得像拣技,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撒踪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 一.編程基本概念 編程邏輯處理方式: 順序執(zhí)行 循環(huán)執(zhí)行 選擇執(zhí)行 ?shell編程:過程式过咬、解釋執(zhí)行編程語(yǔ)言的基...
    楠人幫閱讀 1,375評(píng)論 0 1
  • 一、退出狀態(tài) 進(jìn)程通過退出狀態(tài)報(bào)告進(jìn)程運(yùn)行成功或失敗 echo $?查看上一條命令執(zhí)行的退出狀態(tài) 0代表運(yùn)行成功制妄,...
    哈嘍別樣閱讀 268評(píng)論 0 1
  • Shell是一種編程語(yǔ)言, 它像其它編程語(yǔ)言如: C, Java, Python等一樣也有變量/函數(shù)/運(yùn)算符/if...
    dujihui閱讀 597評(píng)論 0 8
  • 作者:qinjx原文地址:Shell腳本編程30分鐘入門 什么是Shell腳本 示例 看個(gè)例子吧: 示例解釋 第1...
    IT程序獅閱讀 2,331評(píng)論 1 67
  • 說(shuō)明 手勢(shì)密碼這個(gè)有2種方法實(shí)現(xiàn)掸绞,一個(gè)是直接繼承view然后在里面畫出來(lái),并做事件處理耕捞。另一種就是用viewgro...
    cpia閱讀 1,656評(píng)論 4 38