CSV ファイルを解析してユーザーを追加する際に問題が発生しています。
1000 人のユーザーのリストを追加するための小さなスクリプトを作成しました。
export IFS=","
cat users.csv | while read a b c d e f g; do useradd -d -u $a -U $d ; done
CSV ファイルの形式は次のとおりです。
ps2946,male,Phil Harris,Recording,6508 Hollywood Blvd,Nov 16 1950,760 901 3537
mc3225,male,Mel Blanc,Radio,6385 Hollywood Blvd.,Oct 1 1983,626 647 5560
fn1029,male,Franklin Pangborn,Motion pictures,1500 Vine Street,Mar 10 1911,858 497 6108
we9602,undefined,Webb Pierce,Recording,1600 Vine Street,Sep 3 1988,559 595 6063
ただし、スクリプトを実行すると、ファイル全体が反復され、次の処理が繰り返されます。
useradd: invalid home directory '-u'
export IFS を使用して単語をコンマで区切り、useradd コマンドのパラメータとして使用しました。
マニュアルを読んでホームディレクトリの値を使用しましたが、スクリプト全体が間違っているように感じます。
CSV ファイルからユーザーを追加するためのスクリプトを適切にフォーマットするのを手伝ってくれる人はいませんか?
参考までに、このスレッドをベースに使用しました:https://stackoverflow.com/questions/4439536/shell-script-to-parse-through-a-file-csv-and-process-line-by-line
答え1
このエラーは、オプション を指定して を呼び出しているために発生します。このオプションuseradd
で-d
は、次の単語がデフォルトのホーム ディレクトリ内のホーム ディレクトリ パスまたはディレクトリ名 ( ではない-u
) であることが想定されています。
最初の提案として、次のことを試してください。
cat users.csv | while read a b c d e f g; do useradd -d "$a" -U "$d" ; done