一部のbash関数を実行しようとしていますが、構文エラーが発生し続けます: "("予期しない。角かっこ、かっこなどを削除しようとしましたが、何も機能しないようです。
$ bash --version
GNU bash, version 4.3.46(1) release
#!/bin/bash
function hello () {
echo "Hello world"
}
一部のbash関数を実行しようとしていますが、構文エラーが発生し続けます: "("予期しない。角かっこ、かっこなどを削除しようとしましたが、何も機能しないようです。
$ bash --version
GNU bash, version 4.3.46(1) release
#!/bin/bash
function hello () {
echo "Hello world"
}
回答:
でスクリプトを実行している場合sh hello.sh
、解釈シェルはシバン行で言及されたものではなく、/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
これで、ファイルを実行して目的の結果を得ることができるはずです。
または:
2、3、4行目を~/.bashrc
ファイルに追加できます。
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」がターミナルに出力されます。
最終的に:
3番目のオプションは、次の行を~/.bashrc
ファイルに追加することです。
alias hello='echo "Hello world"'
次に、次のコマンドを使用して.bashrcファイルを入手します。
. ~/.bashrc