목표는 사용자 이름 행을 가져오고, 검색한 사람과 일치하면 w 명령을 실행하는 것입니다. 그렇지 않으면 해당 사람은 온라인 상태가 아닙니다.
read -p "Enter User ID's: " str
for i in [ $str ];
do
if [ who -u | grep -q $i ];
then
echo $i
w -u $i
else
echo $i
echo user is not logged in
done
답변1
tl;dr for id in $str
대신 for i in [ $str ];
및 if who -u | grep -q "$id"
대신 사용하십시오 if [ who -u | grep -q $i ];
.
[ … ]
안에 있는 것은조건식, 이는 명령과 다릅니다.[ … ]
아니요인쇄따라서for
루프로 래핑하면 루프에는 사용할 것이 없습니다$str
.if COMMAND
명령이 성공하면 무언가를 실행하는 정식 방법입니다.- 유지 관리상의 이유로 단일 문자 변수는 좋지 않습니다™.