bash: 予期しないトークン `(' の近くで構文エラーが発生しています

bash: 予期しないトークン `(' の近くで構文エラーが発生しています

wget経由でflaregetダウンロードマネージャーをダウンロードしようとするとエラーが発生します

wget  http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64(stable)_deb.tar.gz
bash: syntax error near unexpected token `('

なぜそのエラーが発生するのでしょうか、またその解決策は何ですか?

答え1

この場合(そして一般的に)URL を一重引用符'または二重引用符で囲む必要があります。"

wget  'http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64(stable)_deb.tar.gz'

今後は、コマンドの引数として括弧を含む文字列を使用する場合は、一般的にこの方法を使用する必要があります。括弧はシェルによってグループ化のために使用されるため、コマンドにはまったく伝達されないためです。そのため、bash シェルは構文エラーを表示します。

$ echo some (parentheses)
bash: syntax error near unexpected token `('
$ echo 'some (parentheses)'
some (parentheses)

答え2

それは括弧のせいです。次のようにエスケープする必要があります。

wget  http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64\(stable\)_deb.tar.gz

これで動作するはずです。

答え3

私の場合は、エスケープされていない括弧とはまったく関係がなく、関数と同じ名前ですでに定義されているエイリアスに関係していました。

1 つのファイル内のエイリアス:

alias foo="echo do something"

別の機能:

foo() {
    # Do something else
}

これらのファイルは両方とも私の によってソース化されましたが~/.bashrc、役に立たないエラー メッセージが表示されました:

syntax error near unexpected token (

関連情報