作者gecer (gecer)
看板Linux
標題[問題] Linux bash 語法問題
時間Mon Mar 12 20:46:49 2018
#!/bin/bash
if [$(cat ~/.bashrc |grep python3)=*'$HOME/python3/bin'*];then
sudo source ~/.bashrc
python3 -V
else
echo ""
echo ""
echo "You need to add \"export PATH=\$PATH:$HOME/python3/bin into
~/.bashrc\""
echo "Then execute \"source ~/.bashrc\""
fi
小弟預期用紅字部分來看 bashrc內有無 python3 字眼 預期不是 空字串就是包含
'$HOME/python3/bin'
但是執行結果卻出現
./python3_install2: line 2: [=*$HOME/python3/bin*]: No such file or directory
不太了解這個錯誤
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.28.43
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1520858812.A.1CA.html
※ 編輯: gecer (111.255.28.43), 03/12/2018 20:47:16
※ 編輯: gecer (111.255.28.43), 03/12/2018 20:50:54
→ CP64: 你兩個方括號裡面也要空格 03/12 20:53
推 shiyeh: bash的空格不是空格 03/12 21:55
推 hijkxyzuw: if [ $(cat ~/.bashrc | grep python3) = *'...'* ] 03/12 22:31
→ hijkxyzuw: 你可以直接 if fgrep '$HOME/python3/bin' ~/.bashrc 03/12 22:33
推 hijkxyzuw: 還有 [ abc = a*c ] 是 false , [[ abc = a*c ]] true 03/12 22:41
→ hijkxyzuw: 星號視為 glob 是雙方括號才支援,還有星號建議要跳脫 03/12 22:43
→ hijkxyzuw: 不然如果目錄下有匹配的檔名會被展開 03/12 22:43
推 chang505: 不就跟你說沒這檔案了嗎 03/12 23:26