gpt4 book ai didi

linux - `./example.sh` 和 `sh example.sh` 有什么区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:08 27 4
gpt4 key购买 nike

我正在尝试使用 bash 和数组。但是执行示例脚本时,我收到了意外的语法错误消息:example.sh: 3: example.sh: Syntax error: "("unexpected。这是脚本

#!/bin/bash
array=( one two three )

如果我使用 ./example.sh 运行脚本,它会工作并且不会显示任何错误。但是,如果我运行 sh example.sh,我会收到错误消息。

我认为这两个命令是一样的:

  • sh example.sh
  • ./example.sh

那么……这两者有什么区别呢?

最佳答案

当您通过 ./example.sh 启动它时,脚本第一行中指定的命令将用于解释内容。因此,您的脚本在 bash 中执行,其中数组允许使用此类语法。

当您通过 sh example.sh 启动它时,sh 是用于解释文件内容的命令。 sh 是原始的 Unix shell(又名 Bourne shell),这个 shell 比 bash(Bourne again shell)粗鲁一点。你没有这样的数组。请注意,在 sh 中,脚本的第一行仅被解释为注释。

关于linux - `./example.sh` 和 `sh example.sh` 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30907988/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com