首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在BASH命令中使用变量?

在BASH命令中使用变量?
EN

Stack Overflow用户
提问于 2011-03-02 17:09:04
回答 7查看 265关注 0票数 2

我有20台机器,每台运行一个进程。这些机器的名称是:

"machine1“、"machine2”、.、"machine20“

为了检查进程在machine1上的运行情况,我从远程计算机发出以下命令:

代码语言:javascript
运行
复制
ssh machine1 cat log.txt

对于machine2,我发出以下命令:

代码语言:javascript
运行
复制
ssh machine2 cat log.txt

同样,对于machine20,我发出以下命令:

代码语言:javascript
运行
复制
ssh machine20 cat log.txt

是否有bash命令允许我使用one命令查看所有机器的输出?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-03-02 17:12:33

如果机器有很好的编号,如您的示例中所示:

代码语言:javascript
运行
复制
for i in {1..20} ; do ssh machine$i cat log.txt; done

如果文件中有计算机列表,则可以使用:

代码语言:javascript
运行
复制
cat machinesList.txt | xargs -i ssh {} cat log.txt
票数 3
EN

Stack Overflow用户

发布于 2011-03-02 17:13:47

您可以将所有计算机名称存储在一个数组或文本文件中,并循环遍历它。

代码语言:javascript
运行
复制
declare -a machineList=('host1' 'host2' 'otherHost') # and more...


for machine in ${machineList[@]}
do
    ssh $machine cat log.txt
done

我想你的机器不是真的命名为机器1,机器2,等等。

一些链接:

  • bash教程
  • GNU Bash Array文档
票数 3
EN

Stack Overflow用户

发布于 2011-03-02 17:12:41

代码语言:javascript
运行
复制
for i in {1..20}
do
   ssh machine$i cat log.txt
done
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5170897

复制
相关文章

相似问题

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