2012-03-14 80 views
1

我試圖將一些終端命令鏈接在一起,這樣我就可以將一個文件解壓縮,然後直接同步到亞馬遜s3。這是我到目前爲止我已經安裝了s3cmd工具並正常工作。這對我有用。在mac os上鍊接終端腳本x

mkdir extract; wget http://wordpress.org/latest.tar.gz; mv latest.tar.gz extract/; cd extract; tar -xvf latest.tar.gz; cd ..; s3cmd -P sync extract s3://suys.media/ 

我該如何去創建一個簡單的腳本,我可以只使用變量?

+0

您應該使用'&&'而不是';',因爲前者更安全(只會在鏈接過程返回0時繼續)。有關更多信息,請參閱http://biodegradablegeek.com/2009/06/bash-tips-for-power-users – Jwosty 2012-03-14 13:22:44

+0

另外,您希望如何使用變量? – Jwosty 2012-03-14 13:24:01

+0

嗨jwosty謝謝你的迴應顯然是新的,因此,鏈接,我想寫一個小腳本,我可以簡單的類型這樣的$ sync url s3:// bucket;所以他們需要做的就是插入一個url和bucket,並且將整個下載和上傳到s3中,希望這是有道理的。 – DCHP 2012-03-14 13:37:14

回答

1

您可能會想要看看bash scripting。 本指南可以幫助你很多; http://bash.cyberciti.biz/guide/Main_Page

對於你的問題;

創建一個名爲mysync文件,

#!/bin/bash 
mkdir extract && cd extract 
wget $1 
$PATH = pwd 
for f in $PATH 
do 
    tar -xvf $f 
    s3cmd -P sync $PATH $2  
done 

$ 1和$ 2,你與你的腳本中調用的參數。您可以在這裏查看有關如何使用命令行參數的更多信息; http://bash.cyberciti.biz/guide/How_to_use_positional_parameters

ps; #!/bin/bashnecessity。你需要提供你的腳本存儲bash的地方。它的/ bin/bash在大多數unix系統上,但我不確定它是否在mac os x上是一樣的,你可以通過調用終端上的哪個命令來學習它;

→ which bash 
/bin/bash 

您需要爲您的腳本提供可執行權限才能運行它;

chmod +x mysync 

然後你可以從命令行調用它;

mysync url_to_download s3_address 

ps2;我沒有測試過上面的代碼,但想法是這樣的。希望這可以幫助。