如何在终端中执行 bash 别名函数?

如何在终端中执行 bash 别名函数?

我发现很多人的/etc/bash.bashrc别名中都有类似的东西:

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
    

相关内容