2013-12-18 57 views
0

我想在一個腳本來執行此命令:如何調用bash中的雙重qoutes之間的變量?

axel "$1" 

其中「$ 1」是由Firefox插件的FlashGot在腳本發送到該命令的URL。但是,這個網址很長,並且不斷縮短。解決這個問題的唯一方法是用單引號或雙引號括起URL ...例如。 「http:// ...」

謝謝,提前。

編輯: 好了,該URL的一個例子是http://audio-sjl-t1-2.pandora.com/access/Letting%20Go%20-%20Isaac%20Shepard%2Emp4a?version=4&lid=290476474&token=Z6TTYtio6FYbhzesbxzPyWA%2F%2Bfa2uT5atbV8L0QF%2FMubHshmLJ1hgkN6B8SMZe74V8Q1feGMNmkmyTJO343qYkQ3aklQVKo4mDE2VVl1nkYk05gu0%2BBfP3WtxTCrn8r0gz0wwDgMfzQd68fBcmOTKtB%2FjR2kqVs9ZY7tZQUuabjGcP84ws%2BuIsuTqkKkHyrWaaLkGhk71GoPng2IMrm0L%2B6MeyHu6bvWn%2FoqNhXNerpFLpRZqXZ8JrX9uKVkDmkeQxUVV5%2F8y8uv2yYpG3P5tx1mfAY6U7ZteDLCfCT4JQWzlZscpl7GmtW4gf64KBExGA98xucIp%2Bt1x%2Bjru2Jt%2F7PVeeKWGv2en0%2Fetf1CQWjVUbDoWy4q9cEnYOc7rkpX

好,它保持切割它關閉在

http://audio-sjl-t1-2.pandora.com/access/Letting%20Go%20-%20Isaac%20Shepard%2Emp4a?version=4 

,這是所有被越來越發送到阿克塞爾。

./axel.sh <URL> 

的唯一錯誤消息I:

#!/bin/bash 
cd /home/caleb/Desktop 
echo "$1" 
axel "$1" 

我可以通過經由終端發送一個URL到它看到一個腳本的調試:

我的腳本加入echo命令看到是因爲URL縮短了。

這裏是上面的腳本輸出:

http://audio-sjl-t1-2.pandora.com/access/Letting%20Go%20-%20Isaac%20Shepard%2Emp4a?version=4 
Initializing download: http://audio-sjl-t1-2.pandora.com/access/Letting%20Go%20-%20Isaac%20Shepard%2Emp4a?version=4 
HTTP/1.1 400 Bad Request 
+1

'真的很長'多久了? 256字節? 1 KiB? 4 KiB? 16 KiB? 64 KiB?大?在大多數機器上,您最終會遇到參數長度限制(128 KiB到512 KiB),但您應該處理的URL大小(這將濫用GET URL)。 –

+0

真正的問題可能在於您如何設置'$ 1'的價值,而不是您如何獲取其價值。 – chepner

回答

0

只需使用

#!/bin/sh 
axel "$1" 

工作。如果不是,你將需要提供更多的信息.​​..

1

axel "$1"應該工作,我並不感到驚訝axel ""$1""不起作用,因爲這相當於axel $1

要調試這個,我們需要一個錯誤信息或其他東西,因爲說「它不工作」根本沒有任何幫助。

你說這個腳本是從Firefox調用的。我不確定您是否可以輕鬆看到錯誤消息,也許您不能。我有一個想法。讓我們打電話給你的腳本script.sh。像這樣創建一個包裝腳本script-wrapper.sh

#!/bin/bash 
log=/tmp/script.log 
for arg; do 
    echo arg="'$arg'" | tee $log 
done 
/path/to/script.sh >>$log 2>&1 

將這個腳本可執行文件,從Firefox觸發它,然後看日誌,其中將包括輸出和你的原始腳本的錯誤輸出。如果你仍然無法弄清楚什麼是錯誤的,那麼編輯你的問題,並粘貼/tmp/script.log的內容,這樣我們就可以進行調試。

UPDATE

根據您的更新,它看起來像腳本沒有正確地接收到的URL。特別是,當您將URL傳遞給腳本時,它看起來好像沒有正確引用URL。這並不令人驚訝,截止發生在&角色面前,因爲這意味着對殼體有一些東西。你應該打電話給你的腳本是這樣的:

./axel.sh "http://....?version=4&lid=..." 

但這沒有發生,它看起來它越來越不叫雙引號,這將導致您看到的行爲。

+0

我永遠無法讓腳本創建日誌文件出於某種原因... –

+0

@CalebWhite看到我的更新 – janos