bash - 将文件中的行读入 Bash 中的变量
问题描述
我正在创建一个脚本来使用 Bash 从 Unix 中的文本文件中自动添加用户
我已将文件读入 $FILE 中的脚本
该文件采用以下格式:电子邮件;生日;组;共享文件夹
我想忽略文件中的第一行并将数据读入变量
我已经将 IFS 设置为 ';' 早些时候。目前我有
sed 1d $FILE | while read EMAIL BIRTH GROUPS SHAREDFOLDER
do
echo "$EMAIL"
done < $FILE
但是当我回显 EMAIL 变量时,我什么也没得到
解决方案
您正在尝试重定向标准输入两次。管道和管道<
不能都连接到while read
. 在我的 Bash 上<
获胜:
bash$ echo moo | cat <<<bar
bar
显然你想要简单
sed 1d "$FILE" | while read -r EMAIL BIRTH GROUPS SHAREDFOLDER
do
echo "$EMAIL"
done
尽管这可以有意义地简化为
sed 1d;s/;.*//' "$FILE"
您还真的想为您的私有变量使用小写,但这是一个单独的讨论。
推荐阅读
- javascript - 如何使用 React-Responsive-Modal 在一个页面上创建多个模式
- jenkins - Jenkins 节点离线时发送 Microsoft Teams 消息
- c++ - 为什么使用编译时已知函数参数的 static_assert 条件不是常量表达式?
- tcl - 使用 auto_path 时访问命名空间中的 Tcl 变量
- kubernetes - 安装为卷的 Kubernetes 可读参数
- sql - 将数组从 SQL 映射到 Ruby
- netsuite - NetSuite SuiteScript 2.0 fieldChanged - 获取字段更改的原因
- flutter - 当我们使用返回按钮返回屏幕时如何再次收听流媒体?
- kubernetes - Nginx入口不暴露机器上的端口
- java - Spring Boot Actuator - 如何从最终响应代码中排除特定的 healthIndicator