次のコンテンツ(ユーザー名ホームディレクトリのフルネーム)を含むファイルからユーザー名を生成するには、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}"