【发布时间】:2019-11-04 01:23:24
【问题描述】:
循环是添加变量而不是重写它。我不知道为什么会这样。 如果有人可以帮助我,那么真的非常感谢我,我是 bash 的新手,我已经在这里工作了几个小时了......
for (( i=1; i<=4; i++ ))
do
echo User:$(tail -n $i /etc/passwd | cut --delimiter=":" --fields="1")
echo
echo
done
输出变成了
User:art101c40
User:art101c39 art101c40
User:art101c38 art101c39 art101c40
User:art101c37 art101c38 art101c39 art101c40
应该是这样的
User: art101c40
User: art101c39
User: art101c38
User: art101c37
【问题讨论】:
-
Tail 从文件底部抓取 -n 行,然后子shell $() 连接它的输出。所以输出是预期的。尝试描述您要解决的问题,以便我们更好地帮助您。
-
是的,同意,我想如果你检查
/etc/passwd(less, vi, cat) 你会看到最后4行包含art101c37.....。祝你好运。 -
我正在尝试制作一个循环,其中列出了用户名用户:名称用户:名称但我这里的循环给了我用户:名称名称用户:名称名称名称它不断添加到变量上,而不仅仅是覆盖它。我发现可行的唯一方法是使用 printf 而不是 echo。