bash - 问:Bash 脚本从多个文件的变量中运行多个命令
问题描述
在到达每个文件的末尾之前,我遇到了一些循环问题。
如果我运行代码并且在每个文件中只有 1 行它就可以正常工作。但是如果我在文件中包含超过 1 行,它就不起作用
我相信我错误地使用了 FOR 循环,任何帮助将不胜感激。
#!/bin/bash
domain="$(cat domains.txt)"
ip="$(cat ips.txt)"
pub_dkim_key="$(cat pub_dkim_key.txt)"
password="$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-25};echo;)"
# -- ~~ -- -- ~~ -- -- ~~ -- -- ~~ -- -- ~~ -- -- ~~ -- -- ~~ -- -- ~~ -- #
for domain in $domain
do
# Add domains
v-add-domain admin $domain $ip restart
# Delete DNS Records
v-delete-dns-record admin $domain 16
v-delete-dns-record admin $domain 15
# Add NS A Records
v-add-dns-record admin $domain NS1 A $ip
v-add-dns-record admin $domain NS2 A $ip
# Change localhost to correct domain
v-change-dns-record admin $domain 1 ns1.$domain.
v-change-dns-record admin $domain 2 ns2.$domain.
# Add key1 DKIM
v-add-dns-record admin $domain key1._domainkey TXT "v=DKIM1; k=rsa; p=$pub_dkim_key"
# Add SPF
v-add-dns-record admin $domain @ TXT "v=spf1 mx a ip4:1.1.1.1/24 include:amazonses.com ~all"
# Add DMARC
v-add-dns-record admin $domain _dmarc TXT "v=DMARC1; p=none; sp=none; rua=mailto:admin@$domain; ruf=mailto:admin@$domain; rf=afrf; pct=100; ri=86400"
# Add email accounts
v-add-mail-account admin $domain admin $password 1024
v-add-mail-account admin $domain abuse $password 1024
v-add-mail-account admin $domain contact $password 1024
v-add-mail-account admin $domain fbl $password 1024
v-add-mail-account admin $domain hostmaster $password 1024
v-add-mail-account admin $domain noreply $password 1024
v-add-mail-account admin $domain postmaster $password 1024
v-add-mail-account admin $domain reply $password 1024
# Add Email Forward
v-add-mail-account-forward admin $domain admin all@asdfasdf.com
v-add-mail-account-forward admin $domain abuse all@asdfasdf.com
v-add-mail-account-forward admin $domain contact all@asdfasdf.com
v-add-mail-account-forward admin $domain fbl all@asdfasdf.com
v-add-mail-account-forward admin $domain hostmaster all@asdfasdf.com
v-add-mail-account-forward admin $domain noreply all@asdfasdf.com
v-add-mail-account-forward admin $domain postmaster all@asdfasdf.com
v-add-mail-account-forward admin $domain reply all@asdfasdf.com
# Add Lets-Encrypt SSL
v-add-letsencrypt-domain admin $domain
done
# -- ~~ -- -- ~~ -- -- ~~ -- -- ~~ -- -- ~~ -- -- ~~ -- -- ~~ -- -- ~~ -- #
编辑:
希望这可以让我更清楚地了解我想要实现的目标,
几乎我希望它使用指定文件中的域/ips循环命令,直到它到达文件的末尾
domains.txt
a.com
b.com
c.com
ips.txt
1.1.1.1
2.2.2.2
3.3.3.3
pub_dkim_key.txt
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
MIIEowIBAAKCAQEAgr6rzGUQBoi2IICq+RSCDACf
bCb3lZAhn0pmaTnMdWaUZmSDvBdfi8UlEs9LeoUn
First Run v-add-domain admin a.com 1.1.1.1 restart
Second Run v-add-domain admin b.com 2.2.2.2 restart
Third Run v-add-domain admin c.com 3.3.3.3 restart
First Run v-change-dns-record admin a.com 1 ns1.a.com.
First Run v-change-dns-record admin a.com 2 ns2.a.com.
Second Run v-change-dns-record admin a.com 1 ns1.a.com.
Second Run v-change-dns-record admin a.com 2 ns2.a.com.
Third Run v-change-dns-record admin a.com 1 ns1.a.com.
Third Run v-change-dns-record admin a.com 2 ns2.a.com.
etc
解决方案
推荐阅读
- python - 为什么以下代码在 C 和 Python 中给出不同的输出?
- reactjs - recharts中饼图提供cornerRadius后如何加入
- r - 为什么在ggplot的geom_bar中需要stat =“identity”?
- kubernetes - Kubernetes 服务外部名称
- python - Python 滚动浏览您的 Instagram 关注者列表上的溢出滚动框?
- prolog - 如何在 Prolog 中从家谱中找到所有双胞胎
- vue.js - Vue:是否可以在 Vuex 动作中设置另一个状态?
- java - 将 HFM(Hyperion 财务管理)VB 迁移到 Java 新 API
- encryption - 如何使用 node forge 解密 CMS /PKCS#7
- mysql - API MEN(Mysql、expressjs 和 nodejs)