我试图在几台远程主机上并行运行多组命令。 我已经创建了构建这些命令,然后在本地文件沿线的写入输出,事情的脚本:向远程主机发出bash命令 - 写入本地输出文件时出错
ssh <me>@<ip1> "command" 2> ./path/to/file/newFile1.txt & ssh <me>@<ip2>
"command" 2> ./path/to/file/newFile2.txt & ssh <me>@<ip2> "command" 2>
./path/to/file/newFile3.txt; ...(same repeats itself, with new commands and new
file names)...
我的问题是,我的脚本运行这些命令时,我得到出现以下错误:
bash: ./path/to/file/newFile1.txt: No such file or directory
bash: ./path/to/file/newFile2.txt: No such file or directory
bash: ./path/to/file/newFile3.txt: No such file or directory
...
这些文件不存在但将被写入。话虽如此,目录路径是有效的。
奇怪的是,如果我复制并粘贴整个大命令,那么它的工作原理没有任何问题。我宁愿让它自动化;)。
任何想法?
编辑 - 详细信息:
我的文件系统是以下几点:
- home
- User
- Desktop
- Servers
- Outputs
- ...
我从家里/用户/桌面运行bash脚本/服务器。 该脚本创建需要在远程服务器上运行的命令。首先,脚本创建文件将被存储的目录。
outputFolder="./Outputs"
...
mkdir -p ${outputFolder}/f{fileNumb}
...
脚本然后继续创建将遥控器上的主机被称为命令,并且它们各自的输出将被放置在所创建的目录中。 目录在那里。运行这些命令会给我带来错误,但是打印然后将这些命令复制到同一位置会出于某种原因。我也试图给出目录的完整路径,仍然是同样的问题。
希望我已经更清楚了一点。
必须存在重定向才能工作的路径(中间目录不是自动创建的)。所以'mkdir -p path/to/file'在重定向'> path/to/file/newFile.txt'之前。 –
您的问题似乎并未包含足够的相关信息以允许投机以外的任何内容。请提出问题的[最小,完整和可验证的示例](https://stackoverflow.com/help/mcve),以便所有相关信息(以及最小不相关信息)都在这里。 –
你的问题*仍然*没有包含足够的信息来真实地告诉发生了什么 - 这就是创建一个MCVE的要点。但是你提到的“创建命令”让我感到怀疑 - 你是否试图在执行它们之前将命令存储在变量中?如果是这样,有很多事情可能会出错。参见[BashFAQ#50:我试图把一个命令放在一个变量中,但复杂的情况总是失败!](http://mywiki.wooledge.org/BashFAQ/050)。 –