RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: 變數的特例-1   字型大小:||| 
LSO
驢手小試
等級: 2


 . 積分: 6
 . 文章: 25
 . 收花: 20 支
 . 送花: 12 支
 . 比例: 0.6
 . 在線: 103 小時
 . 瀏覽: 2270 頁
 . 註冊: 6951
 . 失蹤: 543
#1 : 2007-8-19 05:40 PM     只看本作者 引言回覆

最近發現幾個scripts中的變數怪怪的.測試後發現和我觀念和書中不同
其實是有一些特例存在,只是可能被疏忽
慢慢整理出來,如有錯誤,請大家指正
此為第1部份,其餘再傳上來
k=1;k1=k
ech '${'”$k1”'}'=> ${k}   *  已修正好
echo '${'$k1'}' => ${k}
echo '”$k1”' => “$k1”
echo ''$k1'' => k
echo '$k1'$k1'' => $k1k

結論 : ' $a  $c ' 單數個單引號內變數不替換
            ''$a '$b '$c ''$d' '偶數個單引號內變數可替換 $a $c $d 不轉換 $b 可轉換
          : $ { } 括號內視作變數代號 ${k1} =k
          :  ${ $k1} => 錯誤 因為 $k1 視為變數代號,實際無 $k1
可在利用 eval 處理 '${'”$k1”'}' 得到的 ${k} 使成為echo ${k}

謝謝指正
GNU bash, version 3.1.17(2)-release (i586-mandriva-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
echo '${'”$k1”'}"'=> ${k} 不對稱符號為輸入錯誤現已修改

因本人還並不熟係linux,故表達可能不完全,需大家指正
      謝

[LSO 在  2007-8-23 08:57 PM 作了最後編輯]


相關關鍵字: 變數特例  






[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
innova
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14


十週年紀念徽章(五級)  

今日心情

 . 積分: 916
 . 文章: 2714
 . 收花: 7188 支
 . 送花: 1461 支
 . 比例: 0.2
 . 在線: 2182 小時
 . 瀏覽: 15142 頁
 . 註冊: 6936
 . 失蹤: 4
 . 火星
#2 : 2007-8-20 06:09 PM     只看本作者 引言回覆

下面這 能跑嗎?  不行吧?

echo '${'”$k1”'}”
引號 根本不對稱
應該是無法執行才對!??


另,  "Shell"Script 跟 "Shell" 是有很大關係的
最好將您的 Shell 版本 寫出來
Ex:

引用:

# tcsh --version
tcsh 6.14.00 (Astron) 2005-03-25 (i386-intel-linux) options wide,nls,dl,al,kan,rh,color,filec

# bash --version
GNU bash, version 3.2.9(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.

# zsh --version
zsh 4.2.6 (i686-redhat-linux-gnu)


用的 shell 不同 語法也會不一樣
Ex: (t)csh 系列 設定變數 要改用:

引用:

set k=1;set k1=k


if/loop 等的用法 差異更大!

即使 同 Shell, 版本不同 有些`狀況` 也會不一樣!
Ex: 同樣是 bash, 印象中 版本3.0 之前 就不能用 "echo ${k1:0:2}" 這樣的 Command!

如果這個 小'echo'  真的讓您很頭大
建議您改用 "printf"
用法與 C語言的 printf 幾乎 90% 一樣!

[innova 在  2007-8-20 06:21 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-3-29 03:51 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.019787 second(s), 6 queries , Qzip disabled