bashのif条件で-sと[[]]はどういう意味ですか?

if [[ -s log.txt ]];

-sとはどういう意味ですか? -zはゼロサイズの文字列を意味します。 -sに関するドキュメントが見つかりません。

if条件を記述しているときに、[]または[[]]はどういう意味ですか。 []または[[]]なしでifを使用しましたが、正常に機能しました。

回答

-sテストは次の場合にtrueを返します

[…]ファイルが存在し、サイズがゼロより大きい

これは、bashのマニュアルとのマニュアルに記載されています。 testユーティリティ(テストはif test -s file; thenと記述される場合もあります)。

および[[ ... ]]を参照してください: Bash-構文が混乱している場合

回答

-sファイル:-ファイルが存在し、サイズがゼロより大きい。

[[…]]部分では、演算子を使用して条件をテストできます。 ifステートメントと考えてください。この例では、「-s演算子を使用しています。この演算子は、参照されているファイルが空でないことをテストします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です