Ubuntu bash函数..syntax错误:“(”或“}”意外
试图运行一些bash函数,但一直遇到语法错误:“(”意外。我试过删除括号,括号等等……似乎没什么用。
$ bash --version GNU bash, version 4.3.46(1) release
#!/bin/bash function hello () { echo "Hello world" }
如果您使用sh hello.sh
运行脚本,则解释shell将不会是shebang行中提到的解释shell,但将使用/bin/sh
。 对于Debian和Ubuntu,默认情况下这将是dash
。
因此,要使用bash
正确运行脚本,请使用以下任一方法。
/bin/bash hello.sh
要么
chmod +x hello.sh ./hello.sh
或者你也可以将bash
设置为/bin/sh
。
dpkg-reconfigure dash
第一:
语法错误是因为()。 从文件中删除(),如下所示:
#!/bin/bash function hello { echo "Hello world" }
或者您可以运行以下命令为您编辑文件:
sed -i 's/() //g' hello.sh
您现在应该能够运行具有所需结果的文件。
另外 :
您可以在~/.bashrc
文件中添加第2,3和4行。
function hello () { echo "Hello world" }
请记住, 不要使用sudo
编辑~/.bashrc
文件!
将行添加到文件后,运行以下命令以重新启动bash或“源”您的.bashrc文件:
. ~/.bashrc
您现在应该可以运行命令hello
并且应该在终端中打印“Hello world”。
也:
您可以编辑该文件来代替:
#!/bin/bash echo "Hello world"
并将文件命名为hello
并将文件保存到/usr/local/bin
。
完成所有这些操作后,通过运行以下命令使文件可执行:
sudo chmod +x /usr/local/bin/hello
您现在应该可以运行命令hello
并且应该在终端中打印“Hello world”。
最后:
第三个选项是将以下行添加到~/.bashrc
文件中:
alias hello='echo "Hello world"'
然后,使用以下命令获取.bashrc文件:
. ~/.bashrc
GNU Bash是默认情况下在Ubuntu终端上使用的shell。 但是,当在系统启动时执行脚本时,则使用dash,因为它是/ bin / sh的破折号。
不行 – >
$ sh hello.sh
会工作 – >
$./hello.sh
问题解决了
根据你的脚本:
#!/bin/bash function hello () { echo "Hello world" } #call this function as follow: hello # Syntax Correct hello() # Syntax Error