首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在命令中运行命令的linux脚本

在命令中运行命令的linux脚本
EN

Stack Overflow用户
提问于 2014-05-06 07:30:50
回答 1查看 111关注 0票数 0

首先,我在脚本编写方面非常薄弱,因此,请容忍此算法只用于解释我的问题:

阶段1:从Server-1获取所有信息,并将其保存在文本文件中。

阶段2:将文本文件复制到Server-2并重新运行脚本以创建服务器-1中存在的类似信息

第一阶段:

file1.txt:

row1 row2 row3 row4

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

代码语言:javascript
复制
./command1 row1 > output

cat输出

冬季:1456年 夏季: 5467 春季: 2314 秋季: 3443

类似地,使用command1的所有其他行都将有4个具有不同季节代码的其他输出。4产出为simiplicity。我所处理的那个在每个命令输出中大约有40个输出。

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

--

@mofoe回复后更新:

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

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

所以这就是我们现在的立场。我正在使用Ping命令来解释情况,它与pings没有任何关系。将其视为其他命令的标准和静态输出。

代码语言:javascript
复制
[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

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

cat output.txt

代码语言:javascript
复制
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个不同的命令来输入到另一个服务器中。我希望现在更有意义?

EN

回答 1

Stack Overflow用户

发布于 2014-05-06 08:56:00

尝试以下几点:

代码语言:javascript
复制
#!/bin/sh
while read line; do 
    ./command1 $line >> output.txt
done < file1.txt

此脚本遍历file1.txt中的每一行,使用该行运行./command1并将输出追加到output.txt

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

https://stackoverflow.com/questions/23488552

复制
相关文章

相似问题

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