Beim Versuch, einige Bash-Funktionen auszuführen, tritt jedoch immer wieder ein Syntaxfehler auf: "(" unerwartet. Ich habe versucht, die Klammern, Klammern usw. usw. zu entfernen. Nichts scheint zu funktionieren.
$ bash --version
GNU bash, version 4.3.46(1) release
#!/bin/bash
function hello () {
echo "Hello world"
}
Antworten:
Wenn Sie das Skript mit
sh hello.sh
ausführen,/bin/sh
wird die Interpretationsshell nicht die in der Shebang-Zeile erwähnte sein, sondern verwendet. Bei Debian und Ubuntu ist dies standardmäßig der Falldash
.bash
Verwenden Sie eine der folgenden Methoden, um Ihr Skript mit a korrekt auszuführen .oder
Alternativ können Sie auch
bash
als festlegen/bin/sh
.quelle
Zuerst:
Der Syntaxfehler liegt an (). Entfernen Sie () wie folgt aus der Datei:
oder Sie können einfach den folgenden Befehl ausführen, um die Datei für Sie zu bearbeiten:
Sie sollten nun in der Lage sein, die Datei mit dem gewünschten Ergebnis auszuführen.
Alternativ :
Sie können Ihrer
~/.bashrc
Datei die Zeilen 2, 3 und 4 hinzufügen .Denken Sie daran, nicht verwenden
sudo
Ihre bearbeiten~/.bashrc
Datei!Nachdem Sie die Zeilen zur Datei hinzugefügt haben, führen Sie den folgenden Befehl aus, um bash neu zu starten oder Ihre .bashrc-Datei zu "quellen":
Sie sollten nun in der Lage sein, den Befehl auszuführen,
hello
und "Hallo Welt" sollte im Terminal gedruckt werden.Ebenfalls:
Sie können die Datei bearbeiten, um stattdessen Folgendes zu sagen:
und benennen Sie die Datei
hello
und speichern Sie die Datei in/usr/local/bin
.Nachdem Sie dies alles getan haben, machen Sie die Datei ausführbar, indem Sie den folgenden Befehl ausführen:
Sie sollten nun in der Lage sein, den Befehl auszuführen,
hello
und "Hallo Welt" sollte im Terminal gedruckt werden.Schließlich:
Eine dritte Möglichkeit wäre, Ihrer
~/.bashrc
Datei die folgende Zeile hinzuzufügen :Geben Sie dann Ihre .bashrc-Datei mit dem folgenden Befehl ein:
quelle
GNU Bash ist die Shell, die standardmäßig in Terminals unter Ubuntu verwendet wird. Wenn jedoch Skripte beim Systemstart ausgeführt werden, wird der Bindestrich verwendet, da es sich bei dem Bindestrich um / bin / sh handelt.
Funktioniert nicht ->
Wird funktionieren ->
Problem gelöst
quelle
Nach Ihrem Skript:
quelle