繁体   English   中英

从文件读取时通过 ssh 运行命令结束文件读取

Running command via ssh while reading from a file ends the file reading

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

一般来说,我有一个 bash 脚本,它从 CSV 文件中读取一些配置数据并执行 rsync 备份。

#!/bin/bash

while IFS="," read -r share source type subdir rsyncPath
do
  # Run preflight script for share
  [ -f "$share.preflight" ] && $share.preflight

  # Now run some rsync command to backup the data
done < <(grep -P -v '^\s*#' "inputfile")

输入文件由如下行组成:

Info,user@remotehost:/share,,,/usr/bin/sudo /opt/bin/rsync
docker,user@remotehost:/share,,,/usr/bin/sudo /opt/bin/rsync

还有其他预检脚本:

docker.预检:

#!/bin/bash
ssh user@remotehost 'echo Stopping docker service'

信息预检:

#!/bin/bash
echo "Hello Info.preflight"

在此示例中,脚本从输入文件中读取两行并执行每个预检脚本:

+ IFS=,
+ read -r share source type subdir rsyncPath
++ grep -P -v '^\s*#' shares
+ '[' -f ./Info.preflight ']'
+ ./Info.preflight
Hello Info.preflight
+ IFS=,
+ read -r share source type subdir rsyncPath
+ '[' -f ./docker.preflight ']'
+ ./docker.preflight
Stopping docker service
+ IFS=,
+ read -r share source type subdir rsyncPath
+ echo Done.
Done.

但是,如果我切换顺序并首先放置docker行,则运行docker.preflight脚本,然后读取循环结束,即使有更多输入要消耗。

+ IFS=,
+ read -r share source type subdir rsyncPath
++ grep -P -v '^\s*#' ./inputfile
+ '[' -f ./docker.preflight ']'
+ ./docker.preflight
Stopping docker service
+ IFS=,
+ read -r share source type subdir rsyncPath
+ echo Done.
Done.

谁能阐明这里发生了什么? runnign ssh如何干扰我的读取循环?

问题暂未有回复.您可以查看右边的相关问题.
1 Python从文件读取命令

我是python的新手,正在尝试打开文件,查看其内容,然后根据这些内容进行操作。 例如,如果文件包含: 我如何一次读取一行文件,将每个项目分配给一个变量,并根据这些变量执行操作? 例如,我读了第一行,然后 我对此进行处理,然后阅读下一行 希望这很清楚,谢谢 ...

2 Makefile:从文件读取时使用cp命令

在makefile中,我正在做这样的事情- filename.txt包含文件和文件夹,例如- 我可以复制文件和文件夹,但是在abc/*.txt的情况下显示错误: 有什么办法可以复制带有通配符的文件? ...

5 从文件读取时出错

我正在做一个关于阅读文件的示例。 我把一个txt文件放到项目文件夹中并编写了这段代码,但我得到了异常FileNotFound ,当我尝试关闭dataInputStream我收到编译错误(注释掉了行)。 我想我搞砸了一切 ...

6 从文件读取数据,而无需使用执行直到结束

我试图按照限制使用Cobol读取数据 不允许使用: AT END子句 PERFORM - 直到 如果别的 切换案例声明 迭代语句 我正在尝试使用上面的代码模拟一个循环,但是我不知道该如何编写IF语句,有没有办法在不使用AT END的情况下检测EOF? ...

2019-01-29 07:38:54 1 61   cobol
7 运行Java命令应用程序时无法从文件读取

我想制作一个简单的命令行Java应用程序,该应用程序将与该应用程序的jar文件位于同一目录中的文件的名称作为参数,以便我可以从中读取。 但是我得到了FileNotFoundException。 这是我的代码: 因此,假设我在同一目录中有一个名为a.txt的txt文件和myApp.ja ...

9 从文件读取时如何使用if语句? [重复]

这个问题已经在这里有了答案: 如何比较Java中的字符串? 23个答案 我几乎是编程新手。 我正在上第二门大学课程。 我花了几个小时在网上寻找,并在这里寻求帮助。 我必须按年对薪水进行排序并将其加在一起。 我以为我可以通过if语句将薪水排序为不同的数组,但 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM