;ls bash: 予期しない表示 ";"近くで構文エラーが発生しました。

;ls bash: 予期しない表示 ";"近くで構文エラーが発生しました。

入力後;ls

その対価でこれを受けました -bash: syntax error near unexpected token `;'

どうすれば解決できますか?

答え1

セミコロンはコマンドを終了します。改行文字は大丈夫なので、通常は必要ありません。しかし、以下を使用すると、1行に複数のコマンドを配置できます。

$ echo -n "hi "; echo there
hi there

それとももっと役に立つかもしれません:

if [ whatever ]; then

行の先頭にセミコロンを入れると、その前に空のコマンドが残ります。これは明らかにシェル構文では禁止されています。 Yashは便利なエラーメッセージを提供します。

$ yash -c '; echo hi'
yash -c:1: syntax error: a command is missing before ‘;’

KshとZshは問題を無視しているようです。

$ zsh -c '; echo hi'
hi

(しかし、isはとは異なり、likeは.とは異なるecho foo;;ため、これらでも使用できません。はステートメントに使用されます。);;;>>>;;case

空のコマンドは何もしないので、前のセミコロンを省略できます。それともZshに切り替えるのがいいようです。

答え2

次の構文エラーと同じです。

$ ;
bash: syntax error near unexpected token `;'

これcmdだけ終了 ;:

$ ls ;

この場合、;次のように定義されたメタ文字です。

メタ文字が
引用されていない場合に単語を区切るために使用される文字。

;複合コマンドと同じではありません。

if list; then list; else list; fi

この場合、これはコマンド構文の一部です。

関連情報