テキストファイル入力でユーザーアカウントを作成する方法

テキストファイル入力でユーザーアカウントを作成する方法

次のコンテンツ(ユーザー名ホームディレクトリのフルネーム)を含むファイルからユーザー名を生成するには、bashスクリプトを生成する必要があります。

drs /home/drs パラナス・テルワラン

私のスクリプト:

!#/bin/bash
#call data from file
file="file.txt"
USERNAME=$(cat file.txt | cut -d: -f1)

USER_FULLNAME=$(cat file.txt | cut -d: -f2)

useradd -m ($USERNAME) -c ($USER_FULNAME)

無効なユーザー名エラーが発生します。

答え1

区切り文字、スペース、コロンは何ですか?あなたの例では空白の使用を提案し、コードではコロンの使用を提案します。

Bashでこれを行うことができます。

#!/bin/bash
file="file.txt"
while IFS=: read USERNAME USER_HOME USER_FULLNAME; do
    useradd -m -c "$USER_FULLNAME" -d "$USER_HOME" "$USERNAME"
done < "$file"

この例では、入力ファイルに次の行が含まれていると仮定します。

drs:/home/drs:Paranas Theruwalan

答え2

まず、変数を使用して()を削除する必要があります。 useradd -m ${USERNAME} -c ${USER_FULNAME}

次に、ユーザー名の出力を確認してください。無効な文字が含まれている可能性があります。

答え3

ここにあります:

#!/bin/bash
#call data from file
FILE="file.txt"
USERNAME=$(cut -d " " -f 1 $FILE)
USER_FULLNAME=$(cut -d " " -f 3,4 $FILE)
useradd -m -c "${USER_FULLNAME}" "${USERNAME}" 

関連情報