userdelのような一般的なコマンドへの入力リダイレクト[冗長]

userdelのような一般的なコマンドへの入力リダイレクト[冗長]

一部のユーザーを含むusers.txtファイルを使用して入力をリダイレクトできますか?

userdel

このように

userdel < users.txt

私の質問はuserdelだけでなく、これらの一般的なコマンドにも当てはまります。

答え1

入力リダイレクトについてはまったくわかりませんが、userdelファイルをプログラムで処理するように設定する方法はいくつかあります。

私はBashに最も慣れているので、私が知っていることに焦点を当てて答えます。他のシェルには少し異なるアプローチが必要になるかもしれませんが、リダイレクトはPOSIXにあるので、一般的な原則はかなり普遍的だと思います。

1つの方法はxargsを使用することです。

< users.txt xargs -n1 userdel

この種の処理のもう一つの一般的なパターンはwhile / readループです。

while read user; do
    userdel "$user"
done < users.txt

xargsメソッドは高速の単一コード行に適していますが、while / readメソッドはより複雑な処理でより多くの読みやすさと制御を提供します。

関連情報