2012-03-18 154 views
0

我是shell noob。我試圖編寫一個簡單的腳本,它將拍攝一個屏幕截圖並將其上傳到我的服務器,當我在終端中逐行執行它時,這一切都很好,但是當我通過我的簡單腳本嘗試實現時,上傳的文件似乎已損壞。我在十六進制編輯器中比較了兩個文件(由於我的腳本而上傳的損壞文件,以及手動執行此操作時上傳的未損壞文件),它們幾乎完全相同......但不是。任何想法當我在終端中一行一行地做同樣的事情時,我運行的腳本沒有發生什麼變化時,發生了什麼?shell ftp上傳 - 文件損壞

這裏是我的腳本:

#!/bin/sh 

    screencapture -x ~/Desktop/screencap.png 

    HOST='mysite.com' 
    USER='myUsrName' 
    PASSWD='myPassWord' 
    DIR='DESKTOP_CAPS' 
    FILE='screencap.png' 

    ftp -n $HOST <<END_SCRIPT 
    quote USER $USER 
    quote PASS $PASSWD 
    cd $DIR 
    put $FILE 
    quit 
    END_SCRIPT 
    exit 0 

感謝!

回答

2

使用binary命令用來設置文件傳輸到二進制
的模式(二進制模式發送每字節的所有8個比特,因而提供更小的傳輸錯誤的機會,並且必須被用於傳送比ASCII文件的其他文件)

+0

完美,工作! thnx這麼多! – Nick 2012-03-18 05:16:42