看板 Linux 關於我們 聯絡資訊
大家好,小弟最近在玩ethtool這東西並嘗試寫了個簡單的語法 但是發現只要他是變數我的scrpit就會出錯 #!/bin/sh KR1S= $(ethtool eth1 | grep 'Speed' | cut -d ' ' -f 2) if [ "$KR1S" == "Unknown!" ] ; then sleep 1s echo "# Speed ...PASS" else echo "# Speed ...FAIL" fi 執行後跳出 ./test.sh: line 3: Unknown!: command not found ------------------------------------------------- 想請問一下這是會是甚麼問題呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.94.168 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1479180111.A.AE5.html ※ 編輯: Rossi30 (223.140.94.168), 11/15/2016 11:22:27
kenwufederer: 第一個才是正確的吧,問題在if那邊… 11/15 11:50
kenwufederer: 你第二個KRIS根本錯誤 11/15 11:50
dou0228: ${KR1S} 11/15 11:51
dou0228: 第一行的也沒加``或$()來收 11/15 11:52
kenwufederer: KR1S… 11/15 11:53
kenwufederer: 其實錯誤都告訴你了… 11/15 11:54
kenwufederer: 不要吝嗇縮排跟括號 11/15 11:59
ckc1ark: 把==換成=試試 11/15 12:03
Rossi30: 我改成 if [ "${KRS}" = "Unknown!" ] ; 但變成是 11/15 12:38
Rossi30: ./test.sh: line 3: Unknown!: command not found ... 11/15 12:39
Rossi30: 把 == 換成 = 會變成語法錯誤@@ 11/15 12:40
kenwufederer: 不是本來就有錯誤嗎? 11/15 12:43
Rossi30: 第二個寫法拿掉好了,我也覺得這樣寫是錯的@@ 11/15 12:46
※ 編輯: Rossi30 (223.140.94.168), 11/15/2016 12:47:25 照d大的說明改成這樣,也是會有錯誤 #!/bin/sh KR1S= $(ethtool eth1 | grep 'Speed' | cut -d ' ' -f 2) if [ "${KR1S}" == "Unknown!" ] ; then sleep 1s echo "# Speed ...PASS" else echo "# Speed ...FAIL" fi ※ 編輯: Rossi30 (223.140.94.168), 11/15/2016 12:48:47
Gold740716: 第三行等號兩邊不能有空白...,因為 sh 允許在命令 11/15 13:18
Gold740716: 前賦值。像 LANG=zh man ls 。 11/15 13:21
Gold740716: 第三行會會清空一個變數,然後把 $() 內的結果當成命 11/15 13:23
Gold740716: 令呼叫。 11/15 13:23
lantw44: 注意 == 並不是所有 shell 都支援,通常用 = 會比較好 11/15 13:31
Rossi30: 謝謝G大,謝謝各位,問題已解決了!!!! 11/15 13:47
Gold740716: 還有如果 var=$() 的結果有空隔,要寫成 var="$()" 11/15 13:56
kenduest: 因為 ! 字元在 shell 有特別的意思,要改成 'Unknown!' 11/15 14:25
kenduest: 用單引號包起來就可以了. 11/15 14:25
kenduest: 另外是鼓勵用 grep 搜尋判斷傳回值,問題比較少 11/15 14:26
kenduest: 另外程式碼部分 a=$(...) 這語法, = 後面不可以有空白 11/15 14:27
kenduest: 正確 a=$(....) 語法,a= $(....) 這會有問題 11/15 14:28
Rossi30: 好的謝謝各位~~~!!!! 11/15 16:04
Gold740716: 樓上 ! 還好吧?包在字串中應該沒問題。 11/15 16:05
kenduest: 記得多空白那後續判斷 Unknown 前面,也要多空白字元啊 11/15 19:28
kenduest: ,反而困擾 11/15 19:28