gpt4 book ai didi

arrays - linux脚本在命令中运行命令

转载 作者:太空宇宙 更新时间:2023-11-04 03:59:27 25 4
gpt4 key购买 nike

首先,我在脚本编写方面非常薄弱,所以请忍受这个算法仅用于解释我的问题:

阶段 1:从 Server-1 获取所有信息,并将其保存在文本文件中。
第 2 阶段:将文本文件复制到 Server-2 并重新运行脚本以创建 Server-1 中存在的类似信息

第一阶段:

文件1.txt:

row1

row2

row3

row4

如果我在 file1.txt 的 row1 上运行 command1,它将给出如下输出:

./command1 row1 > output

猫输出

Winter: 1456

Summer: 5467

Spring: 2314

Fall: 3443

类似地,具有 command1 的所有其他行将有 4 个具有不同季节代码的其他输出。4 个输出是为了简单起见。我所处理的每个命令输出中都有大约 40 个输出。

现在我需要知道如何将这 16 个输出放入 output.txt 中,以便我可以在另一台服务器中重新创建相同的信息?

--

@mofoe 回复后更新:

嘿嘿,首先谢谢你。我认为这正在朝着正确的方向发展。因此,我认为这使我进入了组织输出的最后一步,以便将这些数据输入回另一台服务器时很有用。

考虑这个具有静态输出的 ping 命令,并忽略任何动态或变化的值,想一想,它的一些命令输出将用于输入位于其他地方的另一台服务器。由于要运行许多不同的命令才能进入系统,因此不能通过仅粘贴整个文本文件或整行来完成类似的操作。只有某些部分是重要且需要的。再说一次,我真的很感激你回答了一个蹩脚的问题。谢谢。

这就是我们现在的处境。我用Ping命令来向你解释一下情况,它确实与ping没有任何关系。将其视为其他命令的标准静态输出。

[root@host-11 test]# cat file1.txt
#only 2 hosts are typed in here, originally there are 500+
host-11
host-12

[root@host-11 test]# cat script
#!/bin/sh
while read line; do
/bin/ping -c 4 $line >> output.txt
done < file1.txt

[root@host-11 test]# cat output.txt
PING host-11 (x.x.x.x) 56(84) bytes of data.
64 bytes from host-11 (x.x.x.x): icmp_seq=1 ttl=64 time=0.023 ms
64 bytes from host-11 (x.x.x.x): icmp_seq=2 ttl=64 time=0.036 ms
64 bytes from host-11 (x.x.x.x): icmp_seq=3 ttl=64 time=0.038 ms
64 bytes from host-11 (x.x.x.x): icmp_seq=4 ttl=64 time=0.034 ms

--- host-11 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.023/0.032/0.038/0.009 ms
PING host-12 (y.y.y.y) 56(84) bytes of data.
64 bytes from host-12 (y.y.y.y): icmp_seq=1 ttl=64 time=0.228 ms
64 bytes from host-12 (y.y.y.y): icmp_seq=2 ttl=64 time=0.267 ms
64 bytes from host-12 (y.y.y.y): icmp_seq=3 ttl=64 time=0.264 ms
64 bytes from host-12 (y.y.y.y): icmp_seq=4 ttl=64 time=0.246 ms

--- host-12 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.228/0.251/0.267/0.019 ms

现在,我需要有组织的文本文件,如下所示:

猫输出.txt

host-name      IP       icmp_seq1     icmp_seq2    rtt  

host-11: (x.x.x.x) time=0.023 time=0.036 0.023/0.032/0.038/0.009

host-12: (y.y.y.y) time=0.228 time=0.267 0.228/0.251/0.267/0.019



** all other hosts that might have been included in the file1.txt

因此,一旦我有了这个,我就必须运行 4 个不同的命令才能将其输入到其他服务器中。我希望现在更有意义?

最佳答案

尝试以下操作:

#!/bin/sh
while read line; do
./command1 $line >> output.txt
done < file1.txt

此脚本迭代 file1.txt 中的每一行,运行该行的 ./command1 并将输出附加到 output.txt

关于arrays - linux脚本在命令中运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23488552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com