2016-06-29 150 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,命令是仍然是无法识别。)