我在解析 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