Shell脚本使用bash运行,但不使用sh运行。为什么以及如何解决?

克里斯塔达673

我有以下shell脚本,总结了传递给它的所有参数(以空格分隔):

sum=0
for arg in "$@"; do
    (( sum += arg ))
done
echo $sum

我将其另存为SumAll.sh因此,其功能如下:

sh SumAll.sh 2 4 6 8
20

或者

bash SumAll.sh 1 -2 3 -3
-1

两者都可以在我的本地计算机(MacBook)上运行,但是当我在linux服务器上尝试使用同一个脚本时,bash可以正常运行脚本,但sh不能正常运行。我收到以下错误:

sum: '+=': No such file or directory
sum: arg: No such file or directory

这是为什么?以及我该如何解决?

库萨兰达

的算术评估(( ... ))是对实现的标准POSIX Shell语法的扩展bash大多数shshell不了解该语法。

使用算术替代: sum=$(( sum + arg ))

在未实现非标准的Shell中(( ... )),您的(( sum += arg ))命令将被解释为嵌套的子Shell,并sum使用两个参数+=调用该命令arg

在MacOS,sum是一种实用工具,文件计算校验和(见man sum),以及文件+=arg不能被发现(这就是为什么你会得到特定的错误)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用sh运行bash脚本

来自分类Dev

如何在不使用“ sh”命令的情况下运行shell脚本?

来自分类Dev

为什么LiveReload无法在Firefox上运行以及如何解决?

来自分类Dev

Promise 中的 setTimeout - 如何解决以及为什么它只运行一次?

来自分类Dev

在远程运行Shell脚本时如何解决依赖关系?

来自分类Dev

为什么某些Linux Shell脚本使用exec运行命令?

来自分类Dev

OSX:为什么在终端中手动编写退出而不使用从终端运行的shell脚本时退出工作?

来自分类Dev

为什么不能在shell脚本中使用'sudo su'?如何使Shell脚本自动使用sudo运行

来自分类Dev

如何使用keybind运行.sh脚本

来自分类Dev

为什么以及如何解决?IIS Express“指定的端口正在使用中”

来自分类Dev

谁能告诉我为什么对对象Staff使用Null以及如何解决它

来自分类Dev

使用Go使用参数运行sh / bash / python脚本

来自分类Dev

为什么Bash在子Shell中运行脚本?

来自分类Dev

使用crontab运行.sh脚本

来自分类Dev

Shell脚本只能使用sh命令运行

来自分类Dev

使用bash和sh运行脚本有什么区别?

来自分类Dev

如何使用dockerfiles CMD运行Shell脚本

来自分类Dev

如何使用Shell运行php脚本

来自分类Dev

MySQL语句末尾的\ g是什么意思?以及如何解决未运行的查询?

来自分类Dev

为什么我的bash脚本在|之后不使用sudo?

来自分类Dev

为什么在尝试使用file_get_contents()函数时收到PHP错误406,以及如何解决?

来自分类Dev

为什么Vim与Ctrl + v一起使用时会吞噬Ctrl,以及如何解决它?

来自分类Dev

MS Access 2010子报表运行良好,但主报表冻结,仅对用户有效,对开发人员无效。为什么以及如何解决?

来自分类Dev

为什么Shell脚本以悬挂的'}'运行?

来自分类Dev

使用Shell脚本运行Makefile

来自分类Dev

使用Shell脚本运行Jar

来自分类Dev

为什么pygame滞后以及如何解决?

来自分类Dev

为什么它不旋转呢?以及如何解决?

来自分类Dev

phpmyadmin受阻,为什么以及如何解决它?

Related 相关文章

  1. 1

    使用sh运行bash脚本

  2. 2

    如何在不使用“ sh”命令的情况下运行shell脚本?

  3. 3

    为什么LiveReload无法在Firefox上运行以及如何解决?

  4. 4

    Promise 中的 setTimeout - 如何解决以及为什么它只运行一次?

  5. 5

    在远程运行Shell脚本时如何解决依赖关系?

  6. 6

    为什么某些Linux Shell脚本使用exec运行命令?

  7. 7

    OSX:为什么在终端中手动编写退出而不使用从终端运行的shell脚本时退出工作?

  8. 8

    为什么不能在shell脚本中使用'sudo su'?如何使Shell脚本自动使用sudo运行

  9. 9

    如何使用keybind运行.sh脚本

  10. 10

    为什么以及如何解决?IIS Express“指定的端口正在使用中”

  11. 11

    谁能告诉我为什么对对象Staff使用Null以及如何解决它

  12. 12

    使用Go使用参数运行sh / bash / python脚本

  13. 13

    为什么Bash在子Shell中运行脚本?

  14. 14

    使用crontab运行.sh脚本

  15. 15

    Shell脚本只能使用sh命令运行

  16. 16

    使用bash和sh运行脚本有什么区别?

  17. 17

    如何使用dockerfiles CMD运行Shell脚本

  18. 18

    如何使用Shell运行php脚本

  19. 19

    MySQL语句末尾的\ g是什么意思?以及如何解决未运行的查询?

  20. 20

    为什么我的bash脚本在|之后不使用sudo?

  21. 21

    为什么在尝试使用file_get_contents()函数时收到PHP错误406,以及如何解决?

  22. 22

    为什么Vim与Ctrl + v一起使用时会吞噬Ctrl,以及如何解决它?

  23. 23

    MS Access 2010子报表运行良好,但主报表冻结,仅对用户有效,对开发人员无效。为什么以及如何解决?

  24. 24

    为什么Shell脚本以悬挂的'}'运行?

  25. 25

    使用Shell脚本运行Makefile

  26. 26

    使用Shell脚本运行Jar

  27. 27

    为什么pygame滞后以及如何解决?

  28. 28

    为什么它不旋转呢?以及如何解决?

  29. 29

    phpmyadmin受阻,为什么以及如何解决它?

热门标签

归档