首页 > 解决方案 > 为什么我的“回声”只显示 1 个字?(Linux-Bash)

问题描述

我有一个 username.txt 显示用户名和组,用“,”分隔。我正在尝试仅将“访客”组中的用户名复制到新的 txt。

我的用户名.txt:

mark,staff
jason,visitor
jack,visitor
orlando,visitor

这是我当前的 bash 脚本:

#!/bin/bash

username=username.txt

while IFS=, read username1 group1; do
 if [ $group1 = "visitor" ]; then
   echo $username1 > reportvisitors.txt
 fi
done < $username

我的报告访问者.txt

预期输出:

jason
jack
orlando

实际输出:

jack

标签: linuxbash

解决方案


将 io 重定向运算符移动到循环的末尾。

#!/bin/bash

username=username.txt

while IFS=, read username1 group1; do
 if [ "$group1" = "visitor" ]; then
   echo "$username1"
 fi
done < "$username" > reportvisitors.txt

推荐阅读