谷动谷力

标题: 运行shell脚本时报错"[[ : not found"解决方法 [打印本页]

作者: 鸣涧_GC96O    时间: 2023-8-26 10:49
标题: 运行shell脚本时报错"[[ : not found"解决方法
运行shell脚本时报错"[[ : not found"解决方法

问题描述

在运行shell脚本时报错,命令为:
./test.sh
脚本代码如下:
  1. #!/bin/sh
  2. # file:test.sh
  3. # author:13
  4. # date:2017-07-20

  5. set -e

  6. STR1="test string"
  7. STR2="ter"echo "
  8. STR1:"$STR1echo "
  9. STR2:"$STR2
  10. if [[ "$STR1" =~ "$STR2" ]];then
  11.      echo "包含"
  12. else
  13.      echo "不包含"
  14. fi
复制代码

解决办法

test.sh脚本功能就是判断两个字符串是否有包含关系,但是在运行至判断表达式时报错,sh命令无法识别"[[]]"表达式。
最终也找到了问题的解决办法:bash与sh是有区别的,两者是不同的命令,且bash是sh的增强版,而"[[]]"是bash脚本中的命令,因此在执行时,使用sh命令会报错,将sh替换为bash命令即可:
bash test.sh
或在test.sh头部
指定用bash运行,改
  1. #! /bin/bash
复制代码

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






欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2