2016-06-29 196 views
0

如何檢查shell命令是否以某些文本結尾?舉例來說,如果I型Linux檢查shell命令(bash)

$ http://example.com/file.webm 

(與.webm結束),它會與

$ wget http://example.com/file.webm 

當然僅當命令由一個部件來自動替換。

我使用bash作爲我的shell。

+1

如果指定特定的shell,例如'bash'或'zsh',那麼您可能會得到一個答案可以在該shell中實現。 – Kusalananda

+0

它可能是bash shell。 – user6390359

+0

你是指以某些文字結尾的含義? – AQU

回答

3

bash 4提供了一個處理「未找到命令」錯誤的鉤子。在這種情況下,http://example.com/file.webm不會是一個有效的命令,所以在您的.bashrc文件中定義了以下功能:

command_not_found_handle() { 
    if [[ $1 = http://*.webm ]]; then 
     wget "$1" 
    else 
     return 127 
    fi 
} 

當您嘗試運行您的網址爲命令,command_not_found_handle將與URL作爲第一個叫論據。該函數檢查命令名稱是否與webm URL匹配,如果匹配,則運行wget並將URL作爲參數。 (對於任何其他無法識別的命令,只需返回127,命令是仍然是無法識別。)