簡體   English   中英

Linux Shell腳本,用於從列表中為用戶添加密碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM