functionでSyntax error@Linux shellスクリプト

ブログ
ブログ

さくらインターネットのレンタルサーバーでシェルスクリプトをcronで仕掛けているのですが、そのシェルスクリプトのfunction部分で、

Syntax error: “(” unexpected

となっていました。このエラーの解決策です。

結論、shellの実行shを変更する

何が起きていたかというと、

この環境のshellでは”function関数が使えない”

というエラーでした。

なので、手としましては

  • 実行shellを変更するか
  • 関数を使わないか

のどちらかですね。

cshには関数はない

man csh

でcshのマニュアルを確認しましたが、関数に関する記載がありませんでした。

cshは関数が無いようです。逆に、以下のリンクにあるようにgotoがあるようですね。

関数が使えないからgotoで

shを使えば関数は使える(ただしfunctionではない)

man sh

を確認してみたところ、shでは関数は使用出来ました。

ただし、function 名前() {コマンド}ではなく

名前() {コマンド}

という関数定義の仕方でした。
この修正でシェルスクリプト実行時に「 Syntax error: “(” unexpected 」がエラー出なくなりました。

sh(1) FreeBSDドキュメントJMan

Linuxはマニュアルが正義ですね!

さくらのレンタルサーバーで SSH のシェルに Bash を使う方法 | gotohayato.com

コメント

タイトルとURLをコピーしました