다음 콘텐츠(사용자 이름 홈 디렉터리의 전체 이름)가 포함된 파일에서 사용자 이름을 생성하려면 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}"