有一个程序是这样的:
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