bash 脚本中出现意外的语法错误 `("

BDe*_*per 4 linux bash scripting

我正在编写一个简单的 bash 脚本,我在第 XX 行“(”处发现了这个错误语法错误,这超出了我的代码:

function myfun(){
   echo XXXX
   echo YYYY
   read choice
}

choice=$(myfun)
Run Code Online (Sandbox Code Playgroud)

错误在哪里。我使用了 ShellCheck,没有检测到错误。

mat*_*tst 5

确保您正在运行该脚本bash。该错误是常见的dashshell 错误。

我怀疑你的脚本的第一行不是#!/bin/bash,即你可能完全省略了shebang行,导致使用默认 shell(这通常dash特别是在 Debian 派生的 Linux 上/bin/sh -> dash)。

尝试运行这个:

#!/bin/bash

myfun()
{
   echo XXXX
   echo YYYY
   read choice
}

choice=$(myfun)
Run Code Online (Sandbox Code Playgroud)