如何在終端機中執行 bash 別名函數?

如何在終端機中執行 bash 別名函數?

我發現很多人的/etc/bash.bashrcas 別名中都有類似的內容:

del_recursive() {
    find . | grep '$1' | xargs rm
}

process() {
    ps -ef | grep $1
}

apache() {
    sudo service apache2 $1
}

function extract()    # Handy Extract Program.
{
     if [ -f $1 ] ; then
         case $1 in
             *.tar.bz2)   tar xvjf $1     ;;
             *.tar.gz)    tar xvzf $1     ;;
             *.bz2)       bunzip2 $1      ;;
             *.rar)       unrar x $1      ;;
             *.gz)        gunzip $1       ;;
             *.tar)       tar xvf $1      ;;
             *.tbz2)      tar xvjf $1     ;;
             *.tgz)       tar xvzf $1     ;;
             *.zip)       unzip $1        ;;
             *.Z)         uncompress $1   ;;
             *.7z)        7z x $1         ;;
             *)           echo "'$1' cannot be extracted via >extract<" ;;
         esac
     else
         echo "'$1' is not a valid file"
     fi
}

但如何在控制台中執行這些呢?嘗試簡單地作為函數執行,但它只是進入您必須輸入更多資訊的狀態。有人可以指出我應該如何執行這些嗎?

答案1

  • del_recursiveextract期望檔名作為第一個參數:

    extract foo.tar.gz
    del_recursive bar.txt~
    
  • process在 的輸出中尋找模式ps,您可以將參數傳遞給grep,它可以是進程名稱或 PID:

    process firefox
    
  • apache需要如下服務命令:

    apache restart
    

相關內容