[英]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.