首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么可以在终端执行一些命令,而不能在脚本中执行?

为什么可以在终端执行一些命令,而不能在脚本中执行?
EN

Ask Ubuntu用户
提问于 2022-03-13 15:14:48
回答 1查看 3.4K关注 0票数 1

我正在编写一个基本脚本来练习使用数组。当我运行脚本时,我会得到错误,但是当我在终端中运行相同的命令时,它就会执行。

代码语言:javascript
复制
#!/bin/bash

declare -a StringArray

StringArray=("blue" "green")

for  val in ${StringArray[@]}; do
    echo $val
done

我已经给了脚本可执行的许可。我遗漏了什么?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2022-03-13 15:36:26

使用命令sh script.sh,您可以尝试使用sh运行脚本。shdash有符号链接。dash是Ubuntu的标准命令解释器。它是一个与bash不同的外壳,本质上具有更小的特性,但速度非常快。Bash更适合交互式使用,因此仍然是交互式提示符的默认解释器。在这些命令解释器之间的差异上有一个很好的答案。

相反,使用

代码语言:javascript
复制
bash script.sh

在正确的外壳下执行。

如果您将脚本放在路径中的目录中并使其可执行,只需键入script.sh即可在命令提示符下运行它。这时,#!/bin/bash告诉系统应该使用bash。当以bash script.shsh script.sh的形式运行脚本时,该shebang行只是一个注释,根本没有解释。

票数 4
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1397332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档