web-dev-qa-db-ja.com

私はbashを取得しています:予期しないトークン '('に近い構文エラー

私はGame Elf JAMMAボード(412-in-1)のハイスコアの保存に取り組んでいます。私は現在 このチュートリアル をフォローしています。このコマンドを実行しようとしています

mv hiscore(pre_mame0133u1).dat /mnt/three/usr/local/share/xmame/hiscore.dat

my screenshot で確認できるように、エラーが返されます

bash:予期しないトークン '('に近い構文エラー

4
Kenyon Geetings

bash: syntax error near unexpected token '('

escape 括弧が必要です:

mv hiscore\(pre_mame0133u1\).dat /mnt/three/usr/local/share/xmame/hiscore.dat

注意:

今後の参考のために、 ShellCheck を使用してbashコードのバグを見つけることができます。未修正のスクリプトを入力すると、次のようになります。

$ shellcheck myscript

Line 1:
mv hiscore(pre_mame0133u1).dat /mnt/three/usr/local/share/xmame/hiscore.dat
^-- SC2148: Tips depend on target Shell and yours is unknown. Add a Shebang.
          ^-- SC1036: '(' is invalid here. Did you forget to escape it?
          ^-- SC1088: Parsing stopped here. Invalid use of parentheses?

最初のエラーを修正する:

$ shellcheck myscript

Line 1:
mv hiscore\(pre_mame0133u1).dat /mnt/three/usr/local/share/xmame/hiscore.dat
^-- SC2148: Tips depend on target Shell and yours is unknown. Add a Shebang.
                          ^-- SC1089: Parsing stopped here. Is this keyword correctly matched up?

そして、2番目のエラーを修正します。

$ shellcheck myscript

Line 1:
mv hiscore\(pre_mame0133u1\).dat /mnt/three/usr/local/share/xmame/hiscore.dat
^-- SC2148: Tips depend on target Shell and yours is unknown. Add a Shebang.

参考文献

9
DavidPostill