我試圖在幾臺遠程主機上並行運行多組命令。 我已經創建了構建這些命令,然後在本地文件沿線的寫入輸出,事情的腳本:向遠程主機發出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)。 –