日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell 脚本比较字符串相等_shell脚本--逻辑判断与字符串比较

發布時間:2023/12/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell 脚本比较字符串相等_shell脚本--逻辑判断与字符串比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

涉及到比較和判斷的時候,要注意

整數比較使用-lt,-gt,ge等比較運算符,詳情參考:整數比較

文件測試使用 -d, -f, -x等運算發,詳情參考:文件測試

邏輯判斷使用? ??&&(且)、||(或)、!(取反)

字符串比較實用

字符串的比較使用以下三個比較運算符:= 或者(==)、!= 、> 、

-n表示判斷后面的值是否為空,不為空則返回true,為空則返回false。

下面的一個例子:

#!/bin/bash

#文件名:test.sh

read -p 'please input name:' name

read -p 'please input password:' pwd

if [ -z $name ] || [ -z $pwd ]

then

echo "hacker"

else

if [ $name == 'root' ] && [ $pwd == 'admin' ]

then

echo "welcome"

else

echo "hacker"

fi

fi

運行測試:

ubuntu@ubuntu:~$ ./test.sh

please input name:root

please input password:admin

welcome

ubuntu@ubuntu:~$ ./test.sh

please input name:root

please input password:

hacker

ubuntu@ubuntu:~$ ./test.sh

please input name:root

please input password:beyond

hacker

ubuntu@ubuntu:~$

注意:

比較運算符的兩邊都有空格分隔,同時要注意比較運算符兩邊的變量是否可能為空,比如下面這個例子:

#!/bin/bash

#文件名:test.sh

if [ $1 == 'hello' ];then

echo "yes"

elif [ $1 == 'no' ];then

echo "no"

fi

運行:

ubuntu@ubuntu:~$ ./test.sh

./test.sh: line 4: [: ==: unary operator expected

./test.sh: line 7: [: ==: unary operator expected

ubuntu@ubuntu:~$ ./test.sh hello

yes

ubuntu@ubuntu:~$ ./test.sh no

no

ubuntu@ubuntu:~$ ./test.sh test

ubuntu@ubuntu:~$

可以看到,在代碼中想要判斷shell命令的第二個參數是否為hello或者no,但是在測試的時候,如果沒有第二個參數,那么就變成了 if [ == 'hello' ],這個命令肯定是錯誤的了,所以會報錯,比較好的做法是在判斷之前加一個判斷變量是否為空? 或者使用雙引號將其括起來,注意,必須使用雙引號,因為變量在雙引號中才會被解析。

#!/bin/bash

#文件名:test.sh

if [ "$1" == 'yes' ]; then

echo "yes"

elif [ "$1" == 'no' ]; then

echo "no"

else

echo "nothing"

fi

運行:

ubuntu@ubuntu:~$ ./test.sh

nothing

ubuntu@ubuntu:~$ ./test.sh yes

yes

ubuntu@ubuntu:~$ ./test.sh no

no

ubuntu@ubuntu:~$ ./test.sh demo

nothing

這樣的話,就不會報錯了。

總結

以上是生活随笔為你收集整理的shell 脚本比较字符串相等_shell脚本--逻辑判断与字符串比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。