[英]Linux Shell script to add a user with a password from a list
我正在嘗試修改一個從文件中讀取用戶名/密碼的腳本,如下所示:
user1 pass1
user2 pass2
user3 pass3
我無法獲取腳本來讀取用戶之間的空間並通過。 我可以用什么來划定這個空間? 這是我的代碼:
for row in `cat $1`
do
if [ $(id -u) -eq 0 ]; then
username=${row%:*}
password=${row#*:}
#echo $username
#echo $password
我知道我必須更改$ {row%: }和$ {row%: }中的內容
我必須放置什么才能看到user1 pass1之間的空間?
閱讀每一行時,將兩個字段拆分會更容易。 您可以使用read
做到這一點。 最好while
此處使用while
循環(for循環需要使用$IFS
進行播放,並且還會將整個文件加載到內存中):
#!/bin/bash
if [ "$EUID" -ne 0 ]; then
echo >&2 "You are not root"
exit 1
fi
while read -r username password; do
# do the useradd stuff here
done < "$1"
注意,我也將$(id -u)
更改$(id -u)
$UID
,這應該更快,因為它不會調用外部程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.