私が使用するコマンドは次のとおりですls -l . | totLines=$(wc -l) echo $totLines
。私の目標は、行の総数を表示しますが、wc -l
出力を変数名に割り当ててから、その変数の値を表示することです。しかし、これはうまくいきません。wc -l
前のコマンドで処理中の行を取得した後に出力で変数を作成するにはどうすればよいですかls
?
答え1
この場合、パイプは内部シェルに入らないので、次のようにします。
totLines=$(ls -l . | wc -l)
printf '%s\n' "$totLines"
ここで何をしたいのかを実行してください。しかし、この場合にはその-l .
部分は大きく差が出ないので、そのままにしておけば良いのです。また、ファイル名に新しい行が含まれている場合、これを行うと誤った数が得られます。