[求助] 这个 shell,在 ubuntu server 上总是报错,在其它系统测都 OK ;

2020-01-09 14:29:24 +08:00
 Ger2EX
#!/bin/bash

stcode=654321

if [ ${stcode::1} = "6" ];then
    echo "OK"
  else
    echo "no"
fi

报错指在 if [ ${stcode::1} = "6" ];then 这行;

这是什么原因???

还有一个问题,sed -i 直接修改原文件对于 NFS 挂载的文件是不能的;

1432 次点击
所在节点    问与答
11 条回复
ysc3839
2020-01-09 14:39:31 +08:00
我测试没问题。
Ger2EX
2020-01-09 14:53:35 +08:00
我在命令里跑也没问题, 保存 shell 文件后,chmod +x 了,执行就报错;
Ger2EX
2020-01-09 14:55:14 +08:00
./test.sh: 8: ./test.sh: Bad substitution
Fraotisc
2020-01-09 15:09:33 +08:00
#!/usr/bin/env bash
试试呢
lululau
2020-01-09 15:31:26 +08:00
你是不是这么执行的:sh ./test.sh
CallMeReznov
2020-01-09 15:46:28 +08:00
测试过了 木的问题
zilaijuan
2020-01-09 16:16:10 +08:00
bash 和 dash 的关系?
Ger2EX
2020-01-09 17:02:24 +08:00
#!/usr/bin/env bash
Ger2EX
2020-01-09 17:03:44 +08:00
#!/usr/bin/env bash
这个解决了
Harv
2020-01-09 17:05:31 +08:00
sh 解释器类型一样?(不同类型的解释器语法会有少量差异的)
还有就是 5 楼提到的运行脚本的方式。
Maco
2020-01-09 17:45:14 +08:00
bash 1.sh

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/636487

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX