关于sh时命令不识别无法正常执行.sh文件

当shell脚本依赖bash规范而实际环境不是bash时,会导致命令不识别。首先检查$SHELL环境变量确认shell类型,若非bash,需更改。检查脚本头部是否正确指定#!/bin/bash。若`sh`软链接指向dash,执行sh命令会报错。解决方案包括直接用bash执行脚本或修改软链接。通过`ln -snf bash* sh`可修正软链接,问题随之解决。

为什么不能执行呢,因为我们的命令很多时候是以bash的规范的,所以如果shell不是bash类型,很容易出现命令不识别这类问题

先检查shell类型

echo $SHELL
在这里插入图片描述
这是正常的,是bash类型,不正常的需要去改变环境变量。

再检查shell文件头

在这里插入图片描述
检查 #!/bin/bash是否打错或者漏打。

最后检查软链接

在这里插入图片描述
可以看到sh软链接指向了dash*
这样执行sh myshell.sh命令会报错
解决方法有两种
1 可以执行bash指令,bash myshell.sh
2 改变软链接
使用ln -snf bash* sh
结果为
在这里插入图片描述

这样问题就基本解决了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值