2つのコマンドからの出力を変数に向けることに興味があります。出力を画面に表示したくないのですが、代わりにスクリプト内の変数に割り当てて、再び使用できるようにします。
私がやっていることは、以下に示すコマンドを使用してディレクトリからファイルサイズを取得することです:
ls -l /var/spool | wc -c
このコマンドは、ファイルサイズをバイト単位で取得し、出力を整数として表示します。この整数を好みの変数に割り当てて、後で別の変数と比較できるようにすることに興味があります
これはうまくいかないようです:
size = ls -l /var/spool | wc -c
リダイレクトは機能しますか?
このような....
ls -l /var/spool | wc -c > size
いずれにしても、この数値出力を変数に割り当てて、画面に表示しないようにします。
どんな提案も大歓迎です!
とても簡単そうです。
romano@RRyS:~$ size=$(ls -l /var/spool | wc -c)
romano@RRyS:~$ echo $size
476
シェル構文$(command)
はcommand
を実行し、標準出力を返します。変数に保存するだけです。
あなたのコマンド:
ls -l /var/spool | wc -c > size
現在のディレクトリにsize
という名前のファイルを作成します(番号と改行を含む)。
Rmano's answer で提供されるソリューションを好みますが、リダイレクトのみを使用する場合:
read size < <(ls -l /var/spool | wc -c)