コマンド条件は時々整数、時には文字列です。

コマンド条件は時々整数、時には文字列です。

この条件を実行したいと思います。

while [ $(cat /path_of a file/) -eq 1 ]

条件が真の場合にのみ条件が真になります。

$(cat /path_of a file/) 

文字列ではなく整数です!

この問題をどのように克服できますか?

ベストアンサー1

=たとえば、演算子を使用してこれを実行できます[ $(cat /path_of a file/) = 1 ]。両方の引数の文字列表現を比較するので、すべての場合に機能します。

場合-eqによっては、文字列比較の代わりに使用する方が良いかもしれませんが(実際にはそうでは[ 01 -eq 1 ]あり[ "01" = 1 ]ません)、ほとんどの場合、より危険です。一方、整数の比較が本当に必要な場合は、@Gnoucの提案を使用する必要があります。

おすすめ記事