運行shell腳本時報錯"[[ : not found"解決方法


問題描述

在運行shell腳本時報錯,命令為:

sh test.sh

報錯如圖:
shell

腳本代碼如下:

#!/bin/bash

# file:test.sh
# author:13
# date:2017-07-20

set -e

STR1="test string"
STR2="ter"

echo "STR1:"$STR1
echo "STR2:"$STR2

if [[ "$STR1" =~ "$STR2" ]];then
     echo "包含"
 else
     echo "不包含"
 fi

解決辦法

test.sh腳本功能就是判斷兩個字符串是否有包含關系,但是在運行至判斷表達式時報錯,sh命令無法識別"[[]]"表達式。

最終也找到了問題的解決辦法:bash與sh是有區別的,兩者是不同的命令,且bash是sh的增強版,而"[[]]"是bash腳本中的命令,因此在執行時,使用sh命令會報錯,將sh替換為bash命令即可:

bash test.sh

參考:https://stackoverflow.com/questions/12230690/string-comparison-in-bash-not-found


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM