2026年4月21日火曜日

xargs: unterminated quote では閉じ忘れ

 xargs: unterminated quote エラーは、シェルスクリプトやコマンドラインでクォート(引用符)の閉じ忘れや不適切な使用が原因で発生します。このエラーは、xargs コマンドが入力データを処理する際に、開いたままのクォートが見つかった場合に表示されます。

シングルクォートやダブルクォートの閉じ忘れ

  • 例えば、以下のようなコマンドが原因になります:

echo "hello world | xargs echo 'test

上記では、シングルクォート ' が閉じられていないため、xargs がエラーを出します。

マルチライン入力でクォートが正しく閉じられていない

  • 入力データに未閉じのクォートが含まれていると、xargs はエラーを報告します。

printf "hello world 'test\n" | xargs

ファイルやパイプからの入力にクォートが残っている

入力データがパイプやファイルから供給される場合、特に未閉じのクォートが含まれているとエラーが発生します。

似たバグ

JavaScript のエラー "unterminated string literal" は、どこかに終了していない文字列リテラルがあった場合に発生します。文字列リテラルは単一引用符 (') または二重引用符 (") で囲む必要があります。