mac osx 执行shell脚本和在终端执行不一致

本文深入探讨了Shell脚本中常见的运行异常现象,并提供了如何识别和解决这些问题的方法。通过分析实例,强调了正确指定脚本解释器的重要性,确保脚本在不同环境下的一致性执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

echo -e "hello world"放在shell脚本文件里和在终端执行结果如果不一样,肯能是shell解释器不一致导致的,解决方法就是在shell脚本前面加上#!/bin/bash
下面是百度知道上得一个类似解答:
ls -l `which sh`
sh --version

看看输出是什么
估计和你当前用的 shell 命令行不是同一个 shell 解释器。

写 shell 脚本,记住一定要在最开始写 #!/bin/bash 或者其他的解释器,比如 csh、tsh。python、perl、php 都可以这么用,这样你的脚本就制定了一个解释器来运行。运行时不要用 sh xxx.sh ,而是赋予可运行权限后 ./xxxx.sh 方式运行。

一般 Linux 下面的 /bin/sh 是一个链接,指向一个默认的 shell 解释器,这个链接如果不是你需要的解释器,那么脚本运行出现任何问题都可能。如果系统装了 busybox ,他也会提供一个 sh 解释器,而且命令的文件名也是 sh ,他和 bash 运行结果也有区别,只是这个 sh 不一定在 /bin 里面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值