运用文心一言解决 shell 脚本问题 问题描述:test1.sh: 5: [[: not found test1.sh: 5: [[: not found

文心一言解决shell 脚本问题

问题描述:

原始脚本:

#!/bin/bash
fruit="aaa"
if [ "$fruit"=="kl" ] || [ "$fruit"=="hj" ]
then
    echo "sdhflksdjf"
else
    echo "123123213"
fi

我提问:

为啥会报错test1.sh: 5: [[: not found
test1.sh: 5: [[: not found

他给出回答

如果您在尝试运行脚本时遇到了 test1.sh: 5: [[: not found 的错误,这通常意味着您的脚本可能是在一个不支持 [[ … ]] 这种条件表达式的shell环境中执行的。[[ … ]] 是 bash、zsh 和其他一些现代 shell 的特性,但并不是所有 shell 都支持它。

例如,如果您的脚本第一行是 #!/bin/sh,那么脚本可能会使用 /bin/sh 来执行,而 /bin/sh 在很多系统上实际上是
dash(Debian Almquist Shell)或其他类似的 POSIX shell 的链接,这些 shell 不支持 [[ …
]]。

为了解决这个问题,您可以:

将脚本的第一行更改为 #!/bin/bash(或其他支持 [[ … ]] 的 shell,如
#!/bin/zsh),并确保您的系统上有该 shell。 如果您不能更改 shebang(脚本的第一行),您可以将 [[ … ]] 替换为 [ … ] 并使用单个等号 = 进行字符串比较

总结
更正代码为:

#!/bin/sh  
  
fruit="aaa"  
  
if [ "$fruit" = "kl" ] || [ "$fruit" = "hj" ]; then  
    echo "sdhflksdjf"  
else  
    echo "123123213"  
fi

问题解决文心还是有点东西nb啊

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值