1.請問我這段程式碼
read -p "input postin : " i
echo $i
read -p "please ip : " ip
echo $ip
read -p "please persime: " ps
echo $ps
if [ -d ${i} ] ; < 這段在單獨的時候他可以預作後面的內容,可是只要放回程式裡面
他都直接只跑 if [ -d ${i} ] 請問這是什麼原因呢
then
echo "$?"
fi
test ! -d ${i} && echo "not" < 同前面的
if [[ ! "${ip}" =~ [0-9] ]]
then
echo "this is only dig
fi
問題點:
if [ -d ${i} ] 我想讓他 符合這個 條件 他會執行後面的
echo "$?" 可是我單獨拿出來測試正常
只要放回去程式碼裡面 後面 echo "$?" 這個就條件服合也不會顯示
2.[[ "${x}" =~ ^[0-9]+$ ]]
這段的[[]] 代表什麼意思呢? 還有=~ 又有什麼用處呢 以及後面的+$ 跟[0-9]
有什麼差別呢
這邊已經有查過資料可試看了還是不太懂
不知道有沒有大大可以更好的解說
1 .
待補
還是看不懂的你的問題
你要的效果是什麼?
最後出來的結果或遇到的問題是什麼?
因為我測試看起來都正常
2 .
正規
[[ "${x}" =~ ^[0-9]+$ ]]
=~ => 右邊為正規式
^[0-9] => 0 ~ 9 開頭
+ => 一個以上的字元
$ => 結尾
組合起來就是
${x} 要符合 數字開頭 + 一個以上的數字 + 數字結尾 = 整串都是數字
if [ -d ${i} ] 我想讓他 符合這個 條件 他會執行後面的
echo "$?" 可是我單獨拿出來測試正常
只要放回去程式碼裡面 後面 echo "$?" 這個就條件服合也不會顯示
我在VMBOX裡面 測試不行的 他條件對 他也不會反應
這邊我是條成 如果是資料夾 條件符合 他應該要顯示我想要的文字
input postin : /etc
echo /etc
/etc
可這邊再用SH -X 跑的時候 條件對 也無法得到想要的文字
read -p 'please ip : ' ip
please ip : 192.168.1.11
echo 192.168.1.11
192.168.1.11_
read -p 'please persime: ' ps
please persime: ro
echo ro
ro
'[' -d /etc ']'
echo 1
1
[[ ! 192.168.1.11 =~ [0-9] ]]
echo ' 192.168.1.11(ro) '
echo ''
echo '\n 192.168.1.11'
\n 192.168.1.11
echo '\n ro'
\n ro
我看了影片 我是想讓他調建達成 顯示NOT 只是顯示不出來
還有第二題[[ ]] 這個 跟 [] 有什麼差別呢
像我在使用=~ 用[ ]他反而會錯誤 然後用 [[ ]] =~ 卻又可以成功這插在哪裡呢
我看了影片 我是想讓他調建達成 顯示NOT 只是顯示不出來
還有第二題[[ ]] 這個 跟 [] 有什麼差別呢
像我在使用=~ 用[ ]他反而會錯誤 然後用 [[ ]] =~ 卻又可以成功這插在哪裡呢
[] vs [[]]
你可以參考這個