linuxthen
⑴ linux shell中if 語句想要then後什麼也不執行,關鍵詞是什麼
你看看這樣可以嗎
if [ -e ./test19 ]
then
if [ ! -f ./test19 ]
then
touch ./test19
fi
else
touch ./test19
fi
另外你這個程序的邏輯似乎有點問題,如果./test19存在而且是個目錄,你再touch ./test19會重名吧
⑵ 在linux操作系統中和:的用法
用法如下:
1、冒號在Linux中是一個空命令,可以認為與shell的內建命令true相同,它的返回值是0。在while循環中 while : 與 while true 的作用是等效的,在 if/then 中可作為佔位符。
2、在Linux系統中,冒號(:)常用來做路徑的分隔符(PATH),數據欄位的分隔符(/etc/passwd)等。其實,冒號(:)在Bash中也是一個內建命令,它啥也不做,是個空命令、只起到佔一個位置的作用,但有時候確實需要它。當然,它也有它的用途的,否則沒必要存在。在·Linux的幫助頁中說它除了參數擴展和重定向之外不產生任何作用。
⑶ Linux if then 不工作
$yn和==之間應該有個空格
⑷ linux if then else
#!/bin/bash
abc=` -sm /home/binzai | awk '{print $1}'`
if [ "$abc" -lt 20 ]
then
echo "it is ok"
else
echo "it is worry"
fi
⑸ Linux中的if...then是如何執行的呢
現在的無盤其實就是虛擬磁碟,關鍵有三點,1-伺服器硬碟夠快,你現在三讀三寫足夠了。2-網路夠快,H3C的純千兆交換機代價高,但是效果不錯,流點口水。3-分機內存夠大,最好在分機做內存回寫,這樣伺服器的壓力會小很多,伺服器配置會降很多
當網吧的機子多到一定程度就會發生質變!網路部分要為300台打下基礎,所以三層交換機是少不了的,最好是光纖主幹,主交換與分交換的距離不會太近,而千兆銅纜,即使是六類線也會有很大衰減,相應的分交換也要有光口,不過你也可以配光電轉換器,成本會降很多,三個方案無盤伺服器在匯聚層
1-有錢的可以直接上三層千兆,7-8個光口,主幹光纖,匯聚千兆
2-省錢三層千兆,電口配光電轉換器
3-百兆三層,全銅纜,
這三個可以部分結合,網路流量多數在分交換上,畢竟是無盤,如果你需要做虛擬盤的話,就要把無盤伺服器和虛擬盤伺服器一一配對,放在一個物理網段,免得數據從速度慢的核心層走
如果想降低一點成本,可以用百兆三層,畢竟出匯聚層的多是上網數據,流量不是太大,網路分成3-6段,限速和綁定在分交換上作,路由器僅僅只是代理上網,這樣ROS可以,其他能帶300台的路由也行,直接在三層交換上做也可以,剩下的還有游戲更新,無盤的話只要更新伺服器就行了,所以一台三層更新足夠了,載入其他六個伺服器的游戲盤作對比更新,如果游戲統一的話,建議只更新一個,其他的用支持索引的對比軟體,直接對比就OK,機子多了就多出很多事,質變不得了啊,無盤不省錢,網路這塊把省的硬碟錢全吃進去都不夠,機子一多,無盤的普通維護基本沒有,但是高級的維護就很需要技術了,現在唯一的優勢就是無盤免疫機器狗,不會被穿,太多了不打了,以後慢慢的你就知道了...
上面是高端組網,簡單點的還可以直接用2層交換,掩碼254,純千兆,埠匯聚,不劃分VLAN,伺服器每個帶100台,雙網卡接中心交換,這樣一台伺服器掛了別的還能代理,不會停業,網眾5.8的S盤就是內存檔不用另外做內存回寫了,每台伺服器帶150沒問題,網路成本降很多,不過路由器要求就高了,要防ARP,限速,雙線負載ROS在1.7以上,上次做150台的用的是1.1的賽揚也挺好,只不過ROS的網卡一定要好,8139就免了,能有以前559(558)最好,反正外網也就100M,如果你的外網光纖超過100M就要用千兆網卡了,不過沒這必要,還不如做電信網通雙線接入每個帶寬50-100M...
算了下300台機子,一個網段也行,風暴的機會幾乎沒有,只要在交換機埠上做好IP綁定,把ARP幹掉在埠上就沒有大問題,只不過交換機要好點,支持埠綁定,支持埠匯聚,支持VLAN,中心核心也可以用光電轉換器走光纖,這樣以後升級到三層也很容易
Y的我現在也混亂了,方案太多,有錢的省錢的都可以,就看你的選擇了!
⑹ linux if [ $# = 0 ] ; then 是什麼意思
其實,標准寫法是:
if [ $# -eq 0 ]; then
$#表示位置參數的數目(對腳本來說,是運行腳本時所帶的參數;對函數來說,是函數調用時傳入的參數)。
數值的比較用 -eq ,字元串的比較才用 =
⑺ linux 每個if都要搭配一個fi嗎
每個if語句都要用fi結束,而且是每一個if都要對應一個fi。
整個if語句用fi閉合起來才算完整,書寫時if和fi要垂直對齊以方便查看。
格式舉例:
if condition
then
command1
command2
fi
condition是判斷條件,如果 condition 成立(返回「真」),那麼 then 後邊的語句將會被執行;如果 condition 不成立(返回「假」),那麼不會執行任何語句。最後必須以fi來閉合,fi 就是 if 倒過來拼寫,即使有多條語句也不需要用{ }包圍起來。
(7)linuxthen擴展閱讀
shell if多條件的格式用法介紹
shell 支持任意數目的分支,當分支比較多時,可以使用 if elif else 結構,它的格式為:
if condition1
then
statement1
elif condition2
then
statement2
elif condition3
then
statement3
else
statementn
fi
注意,if 和 elif 後邊都得跟著 then。整條語句的執行邏輯為:
如果 condition1 成立,那麼就執行 if 後邊的 statement1;如果 condition1 不成立,那麼繼續執行 elif,判斷 condition2。
如果 condition2 成立,那麼就執行 statement2;如果 condition2 不成立,那麼繼續執行後邊的 elif,判斷 condition3。
如果 condition3 成立,那麼就執行 statement3;如果 condition3 不成立,那麼繼續執行後邊的 elif。
如果所有的 if 和 elif 判斷都不成立,就進入最後的 else,執行 statementn。
⑻ 在Linux中 if [ $ !=0 ] then 的含義
ifthen間的是邏輯表達式,不是賦值表達式。c語言:if(a(i,j)==0)vb6:ifa(i,j)=0thenIfA(i,j)=0ThenA(i,j)=k這句的意思是如果A(i,j)=0,那麼給A(i,j)賦值K
⑼ linux shell編程中怎麼判斷時間相等
#!/bin/bash#格式化過期日期,格式化過期日期完整時間以當前時間作為參考!expday="2018-04-11 `date +%T`"echo "Expire day is $expday"#當前日期時間格式為stamp時間戳todays=`date +%s`echo "Today is $(date +"%F %T")"#以下2種方式做時間的四則運算,分別使用 let 或者 $(( ))#過期日期已格式化,規避整數運算的誤差(去余數)#let dayDiff=($(date -d "$expday" +%s)-$todays)/86400dayDiff=$(( ($(date -d "$expday" +%s)-$todays)/86400 ))echo "Diff day is $dayDiff days!"
其餘說明:
bash 不支持浮點運算,如果需要進行浮點運算,需要藉助bc,awk 處理。Linux命令需求的話可如下圖進行查詢
⑽ linux /etc/bashrc文件中,if [ "$PS1" ]; then 是什麼意思沒有見過這個測試命令1758
如果$PS1變數不為空,則執行then後面到的命令,$PS1是命令提示符的顯示樣式