【发布时间】:2018-02-26 10:14:29
【问题描述】:
我目前在一家托管公司实习。他们要求我编写一个 bin/bash 脚本来帮助自动化检查用户域和 .pointers 的过程。并使用“whois”命令验证域/指针是否在我们的服务器上。
我是 bin/bash 脚本的新手,但有人告诉我应该检查嵌套循环。因此,为了测试我的脚本,我制作了与服务器上类似的路径。 /usr/local/directadmin/data/users/#USER#/domains.list 和 users/#USER#/domains/#DOMAIN NAME OF USER#.pointers
#part 1
for i in $(cat /home/MrC/Desktop/Users) #<the list of users i need to check)
do
if [ -f "/usr/local/directadmin/data/users/$i/domainlist.txt" ]
then
echo "/usr/local/directadmin/data/users/$i" >> /home/MrC/Desktop/output.tx$
cat "/usr/local/directadmin/data/users/$i/domainlist.txt" >> /home/carlos/Des$
fi
#part 2
for s in $(cat /home/mrC/Desktop/output.txt)
do
if [ -f "/usr/local/directadmin/data/users/$i/domains/$s.pointers" ]
then
echo "/usr/local/directadmin/data/users/$i" >> /home/MrC/Desktop/pointers.$
cat "usr/local/directadmin/data/users/$i/domains/$s.pointers" >> /home/MrC$
fi
done
done
所以第 1 部分有效,这是下面的 output.txt
/usr/local/directadmin/data/users/testuser
lolla.nl
blaat2.nl
blaat3.nl
google2.nl
/usr/local/directadmin/data/users/testusers
blaat.nl
google.com
test.nl
pietje.nl
但我似乎无法在第二部分工作(没有指针文件)。我对脚本第二部分的目标是读取输出(域名)并将其放入@/$i/domains/$s.pointers。
我是论坛的新手,希望我能以适当的方式提出我的问题。如果有人能给我提示/提示我应该看哪个方向,那将不胜感激。
【问题讨论】:
-
出于好奇,你在哪里学的
for in in $(cat filename)? -
工作人员 :)
-
别再听他们的了...
while read -r i; do #stuff; done < /home/MrC/Desktop/Users(调整IFS或使用-d选项指定分隔符为read)。 -
干杯,如前所述,这并不是读取文件的最佳方式,因为它对许多“错误”开放,因为它允许 shell 解释该行。 WRT你的问题我并不完全清楚你的意图。您能否提供示例输入和输出数据?
-
输入数据只是一个带有用户示例列表的 .txt 文件: user1 user2 user3 output.txt 是上面写的我的意图只是简单地检查给定用户的列表。然后在下面写下他们的域和.pointers。当然,所有用户都有自己的目录。用户:mrc。 domain=mr-c.com 所以.pointer 文本文件被调用:mr-c.pointers
标签: linux bash shell command-line