linux - 为什么我的“回声”只显示 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
解决方案
将 io 重定向运算符移动到循环的末尾。
#!/bin/bash
username=username.txt
while IFS=, read username1 group1; do
if [ "$group1" = "visitor" ]; then
echo "$username1"
fi
done < "$username" > reportvisitors.txt
推荐阅读
- sql - 删除表中所有记录(如果存在)的最有效方法
- java - JavaFX:如何获取特定选项卡来执行操作
- c++ - 对纯右值调用的 std::move 是否解构对象?
- python - 使用 Flask (python) 将表单输出发送到同一网页上的 if 语句
- python - 如何创建彼此独立的窗口?
- java - 使用线性搜索计算在数组中查找元素(数字)的时间
- javascript - 如何在 Sequelize 中使用“不同”?
- shopify - Shopify 应用代理返回 404 响应
- java - Mapstruct 将一个目标映射到另一个目标 - java
- javascript - 在 JavaScript 中对顶点和边进行分组以分隔图形