다음과 같은 프로그램이 있습니다.
while true
do
echo 'Your pass: '
read password
if [ $password == 'qwerty' ]; then
echo 'Nice!'
break
fi
done
나는 사용할 수 있다매개변수프로그램에 매개변수가 있는 경우에만 해당됩니다. 하지만 이 경우에는 작동하지 않습니다 ./program.sh password
. 루프로 프로그램에 보내야 하는 비밀번호 목록이 있습니다.
xargs -a list ./program.sh
작동하지 않습니다.
답변1
xargs
여기서 사용할 이유는 없습니다 . 간단히 다음과 같이 하면 됩니다.
while IFS= read -r password
do
if [ "$password" = 'qwerty' ]; then
echo 'Nice!'
break
fi
done
그런 다음 실행하십시오.
./program.sh < list
정말로 원한다면 xargs
다음과 같이 할 수 있습니다.
for password do
case "$password" in
'qwerty')
echo 'Nice!'
;;
esac
done
그런 다음:
xargs -rd '\n' -a list ./program.sh