さくらインターネットのレンタルサーバーでシェルスクリプトをcronで仕掛けているのですが、そのシェルスクリプトのfunction部分で、
Syntax error: “(” unexpected
となっていました。このエラーの解決策です。
結論、shellの実行shを変更する
何が起きていたかというと、
この環境のshellでは”function関数が使えない”
というエラーでした。
なので、手としましては
- 実行shellを変更するか
- 関数を使わないか
のどちらかですね。
cshには関数はない
man csh
でcshのマニュアルを確認しましたが、関数に関する記載がありませんでした。
cshは関数が無いようです。逆に、以下のリンクにあるようにgotoがあるようですね。
shを使えば関数は使える(ただしfunctionではない)
man sh
を確認してみたところ、shでは関数は使用出来ました。
ただし、function 名前() {コマンド}ではなく
名前() {コマンド}
という関数定義の仕方でした。
この修正でシェルスクリプト実行時に「 Syntax error: “(” unexpected 」がエラー出なくなりました。
Linuxはマニュアルが正義ですね!
コメント