首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环跳过正在读取的文本文件的第一行,为第二行工作,但也不读取第三行。

循环跳过正在读取的文本文件的第一行,为第二行工作,但也不读取第三行。
EN

Stack Overflow用户
提问于 2018-06-15 13:14:28
回答 1查看 62关注 0票数 0

我有一个文本文件,在Bash中有不同的用户名被读取到一个循环中。其中每一条都有自己的路线。我想在这个循环中对文本文件中的每个用户名执行操作。我认为这个问题可能与我正在调用另一个脚本有关,但我不确定。下面是文本文件的一个示例

代码语言:javascript
复制
bobsmith123
jimjenkins456
susanjones789

然后,我使用LDAP搜索从AD获取一些信息,然后使用env变量将这些信息传递给另一个脚本。但是,文件的第一行被完全跳过,第二行工作正常,第三行似乎没有从文本文件中读取用户名,而是执行所有操作,导致调用脚本时出现错误,因为$CENTRIFY_USER是空的。任何帮助都是非常感谢的。这是我的剧本。

代码语言:javascript
复制
echo "Enter username for LDAP Search"

read USERNAME
export USERNAME

echo "Enter password"

read -s PASSWORD
export PASSWORD

echo "What user do you want to add to Centrify?"
while IFS='' read -r line || [[ -n "$line" ]]; do
read CENTRIFY_USER
export CENTRIFY_USER


OBJECTSID=`ldapsearch -H ldap://my.domain.com:389 -D "$USERNAME@MY.DOMAIN.COM" -w $PASSWORD -x -b "DC=my,DC=domain,DC=com" "(&(objectCategory=user)(sAMAccountName=$CENTRIFY_USER))" | grep objectSid | cut -d " " -f2`
SID=`/home/myhome/convert_objectSid_to_sid.sh $OBJECTSID`

export SID

echo "Adding user to Centrify..."
/home/myhome/add_users_to_centrify.sh
done < centrify_users_to_add.txt
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-15 13:24:00

在while循环中,执行两次读取。第一个是read -r line读取第一行,然后是read CENTRIFY_USER,它是第二行。您似乎没有在脚本中使用$line

你似乎需要:

代码语言:javascript
复制
while IFS='' read -r CENTRIFY_USER; do

    export CENTRIFY_USER

    .... 

    done < centrify_users_to_add.txt
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50876405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档