簡體   English   中英

無法在bash腳本中運行mirror命令

[英]can't run mirror command in bash script

對於某些問題,我無法完成最后一行。 它留給我lftp user@server.org:〜>提示符。 有什么建議嗎?

#!/bin/bash
echo "This will sync the background_docs folder"
lftp ftp://user:pass@server  
mirror -r background_docs --only-missing -e

我猜你想讓lftp運行最后一行,

mirror -r background_docs --only-missing -e

對?

如果是這樣,您必須告訴它這樣做。 在編寫時,您的腳本僅啟動lftp,等待其完成,然后才嘗試執行最后一行。

相反,您可能想要使用lftp-e cmd選項,如下所示:

#!/bin/bash
echo "This will sync the background_docs folder"
lftp -e "mirror -r background_docs --only-missing -e" ftp://user:pass@server

您已經編寫了一個Shell腳本。 每行都將作為新命令在shell中執行。 當您按下^ D關閉lftp ,它將嘗試運行mirror命令。 (甚至可能存在於您的系統上。)

如果要通過這種方式將命令發送到程序,請查看expect(1)工具。 甚至還有一個學習模式(比手寫expect腳本給我帶來了更好的成功)。

但是,也許可以使用命令行參數來處理lftp(1)命令? 那會更可靠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM