我有一个将使用printf
然后echo
命令的代码。根据我的理解echo
,默认情况下会换行,但在之后使用时不会发生printf
。下面是代码:
#!/bin/bash
function login
{
printf "\n%s" "Please enter ${1} password: "
read -s passcode
}
for i in root admin; do login $i; done
echo "just something"
在此代码"\n%s"
中很重要,因为我可能在该循环中使用多个用户。输出如下:
[root@host ]# /tmp/test.sh
Please enter root password:
Please enter admin password: just something
[root@host ]#
我知道通过在循环之后放置一个echo ""
简单的修复并创建一个新行,但我想知道为什么在循环时使用printf
它是有效的,为什么不使用echo
之后?