茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1672813 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00193.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2012/8/6 3:18:29
給bash初學者的小禮物

一些bash編程中常犯的錯誤,來自abs-guide

注意!!!!這裡面的例子全部是錯誤的!!!

=====變量使用=====
1.將bash保留字符串定義為變量名/變量名中含有保留字符
case=123 #case是保留字串
ca((=123 #((是保留字符
var-1=123 #-是保留字符,用var_1好了


2.變量用數字開頭
12var=123


3.變量與函數定義重名
do_something ()
{
  echo "This function does something with \"$1\"."
}

do_something=do_something

do_something do_something


4.變量賦值=兩邊有空格
var1 = 123 # var1=123才行


===============
=====比較[]=====
5.[]內缺少空格
[$var -eq 5 ]
[ $var=ab ]


6.<>使用時不加\
[ $var < ab ] #這時<>被解釋為輸出重定向,[ $var \< ab ]才對


7.=\>\<與 -eq -gt -lt不分
[ $var -eq 45.6 ] #=\>\<用來比較字串,而eq gt lt只能用來比較整數,注意是整數,不是數值

=================
8.腳本的sha-bang中不能有非法字符,用dos/win中寫的東西是以\r\n換行的,腳本第1行實際是 #!/bin/bash\r\n,而只有#!/bin/bash\n才是合法的

9.子shell中對變量的操作是不能傳遞給它的父shell
var=123
( $var=456 )
echo $var #結果是123而不是456
echo 456|read var
echo $var #結果還是123,管道是會發起子shell的




原文出處:给bash初学者的小礼物 - Shell - ChinaUnix.net -
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|