안녕하세요, 저는 bash 스크립팅이 처음입니다.
서버에 있는 파일을 확인하는 스크립트를 만들려고 했으나 새 학생 이름을 묻지 않습니다. 입력 내용을 다시 읽도록 하려면 어떻게 해야 합니까? 또한 파일에서 서버 이름을 가져오도록 어떻게 지시합니까?
while read -p 'Enter the ip address for the server: ' ip_addr && [[ -z "$ip_addr" ]] ; do
echo "No-no, please, no blank IP address!"
done
while [[ ! "$ip_addr" =~ ^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$ ]]; do
read -p "No-no not an valid IP. Re-enter: " ip_addr
done
while read -p 'Enter the student name: ' student_name && [[ -z "$student_name" ]] ; do
echo "No-no, please, no blank student Name!"
done
while read -s -p 'Enter password: ' password && [[ -z "$password" ]] ; do
echo "No-no, please, no blank passwords!"
done
y=$student_name
x=$y
####################################################################
sshpass -p "$password" ssh -o StrictHostKeyChecking=no $ip_addr "x=$y" /bin/bash << "EOF"
sudo su - $x
ls -lrth ~/$USER/*DAT* | tail -10
pwd
ls -lrth ~/$USER/*PDF* | tail -10
##############################
while read -p 'Enter New student Name: ' new_student _name && [[ -z "$new_student_name" ]] ; do
echo "No-no, please, no blank student name!"
done
cat /opt/$USER/$new_student_name.txt
exit 0
fi
EOF
답변1
당신은 줄을 서서 기다리는 동안 1달러를 잊어버렸습니다.
cat /opt/$USER/$new_student_name.txt