迴圈中分號的功能 - Linux

Hedwig avatar
By Hedwig
at 2017-02-11T19:05

Table of Contents

http://linux.vbird.org/linux_basic/0340bashshell-scripts.php#ifthen
if [ 條件判斷式 ]; then
當條件判斷式成立時,可以進行的指令工作內容;
fi <==將 if 反過來寫,就成為 fi 啦!結束 if 之意!

if這邊有分號

while [ condition ] <==中括號內的狀態就是判斷式
do <==do 是迴圈的開始!
程式段落
done <==done 是迴圈的結束

for var in con1 con2 con3 ...
do
程式段
done
這個就沒有
至於case就是一定要兩個分號。

好!我之前HPC考試要交兩個script,當時想也沒想,就把大腸包小腸弄出三個
while和if的迴圈,寫在同一行,每個do或done前面都用分號隔開,順利執行。

後來回家整理一下覺很難讀,所以換成多行,這時才注意到鳥哥的範例中
只有if的then前面有分號,不過換成多行後我加上分號也沒有影響執行,
所以好奇分號的功能是甚麼?是必要的嗎?

w|tr -s ' '|cut -d ' ' -f1,4,5|\
while read U L T ;do
if [ `echo $T|cut -d ':' -f1` -ge 30 ] ;then
ps aux|grep "sshd: $U"|grep $L|tr -s ' '|cut -d ' ' -f2\
|while read KPID ;
do
kill -15 $KPID ;
done ;
fi ;
done
這是我整理後的格式,感覺分號只是當成斷行用的?如果"then","do","fi"這類的
寫在不同行就可以不用寫分號,這樣對嗎?

--
"Don't hate the player. Hate the game."
當看到哪個名人賺了大錢,領到高額補助或利息,不要去指責他,
而是要指責那個制度、創造那個制度的人,以及默許那個制度的人。

不然你認為一個人不領18%或是一個人不炒房價,就會改變整體環境嗎?
還不如改變【修改制度的人】,才能從根源改變一切。

--
Tags: Linux

All Comments

Isabella avatar
By Isabella
at 2017-02-14T20:20
結論正確
Xanthe avatar
By Xanthe
at 2017-02-17T12:30
你的結論是對的,可是你還是多寫了很多多餘的分號
Robert avatar
By Robert
at 2017-02-21T21:12
請問是哪些?我就是在分行的時候才發現分的很糟糕,看不懂。
Quintina avatar
By Quintina
at 2017-02-22T13:47
我是把原本的一行插入反斜線+enter(第一while前面),剩下就
Genevieve avatar
By Genevieve
at 2017-02-27T02:52
tab或enter,我是猜$KPID後面還有之後的done那些可以刪掉?Y
Edwina avatar
By Edwina
at 2017-02-28T02:43
y; 另外個人覺得用迴圈和 read 來讀變數很多餘
Xanthe avatar
By Xanthe
at 2017-03-04T01:31
題目是要我們把閒置30分鐘的ssh踢掉,請問有更好的寫法嗎?
Thomas avatar
By Thomas
at 2017-03-04T08:13
1.) 位於行尾最後一字的分號(;)是多餘的
,除非是switch case裡每個case 結尾必要的雙分號(;;)
,因為分號(;)只是用來把多行指令串在同一行用的。
Elvira avatar
By Elvira
at 2017-03-04T11:11
2.) 因為 kill 一次可砍不只一個PID (參考: man kill)
,所以第二層的 while loop 可改寫成「| xargs -r kill -
15」
,而且這樣 kill 指令只會被呼叫一次,效能比較好。
Leila avatar
By Leila
at 2017-03-04T14:55
不小心被斷行了:「| xargs -r kill -15」
Andy avatar
By Andy
at 2017-03-09T04:01
謝謝,我去改寫看看

物聯網,你可能會需要考量的事 by StarNight

Isla avatar
By Isla
at 2017-02-10T10:19
摘要: 物聯網是一門透過通訊,將端點蒐集到的資料,集中關聯分析,並將分析結果用以決策並 回饋的工程藝術。 本次的分享將從物聯網的目的當作進入點,接著分享可能的佈署架構。並概述目前各個常 用的通訊標準、協定,以及其所屬的角色。 除此之外,也會分享去年到柏林參加Linux Foundation舉辦的Open Io ...

關於安裝問題(已解決)

Liam avatar
By Liam
at 2017-02-09T20:25
各位大大好 想請問關於安裝問題 目前電腦作業系統是W7 64位元 安裝的VM 是VMware Workstation 目的 透過VM安裝centos 7 但是遇到安裝就黑頻 有嘗試爬文調整過配置但是還是沒改善 所以上來求救 配置圖: http://i.imgur.com/8okGHqv.pn ...

shell script 抓關鍵字問題

Christine avatar
By Christine
at 2017-02-09T15:49
小弟想透過shell script抓kernel log中的一些關鍵字 像是下面一小串kernel log andlt;6andgt;[ 2731.456308] xxx_handler_work -- wdg_val:0 andlt;6andgt;[ 2731.461548] xxx_do_hotwo ...

數值排列

Belly avatar
By Belly
at 2017-02-09T15:02
我有幾行數列如下 0 1511.9409 7306.7246 143 3.6 0 10 0 1511.9423 7306.7229 122 3.8 0 10 0 1511.94 7306.7252 150 3.5 0 10 andlt;andlt; 這一行移位了 0 1511.9475 7306.7 ...

新手請教

Kama avatar
By Kama
at 2017-02-09T13:39
※ [本文轉錄自 Editor 看板 #1Od01Mhk ] 作者: asdrt (安靜) 看板: Editor 標題: [問題] 新手請教 時間: Thu Feb 9 13:38:27 2017 目前有一批資料 擷取下來是 {and#34;idand#34;:and#34;1da58d7f-ac5 ...