|
|
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已! |
|
恭喜您是本站第 1729835
位訪客!
登入 | 註冊
|
|
|
|
發表者 |
討論內容 |
冷日 (冷日) |
發表時間:2012/8/6 3:18 |
- Webmaster

- 註冊日: 2008/2/19
- 來自:
- 發表數: 15773
|
- [分享]給bash初學者的小禮物
- 給bash初學者的小禮物
一些bash編程中常犯的錯誤,來自abs-guide
注意!!!!這裡面的例子全部是錯誤的!!!
=====變量使用===== 1.將bash保留字符串定義為變量名/變量名中含有保留字符
case=123 #case是保留字串
ca((=123 #((是保留字符
var-1=123 #-是保留字符,用var_1好了
2.變量用數字開頭
3.變量與函數定義重名
do_something ()
{
echo "This function does something with \"$1\"."
}
do_something=do_something
do_something do_something
4.變量賦值=兩邊有空格
=============== =====比較[]===== 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 -
|
|
討論串
|