Как выполнить функции псевдонимов 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_recursiveи extractожидайте имя файла в качестве первого аргумента:

    extract foo.tar.gz
    del_recursive bar.txt~
    
  • processищет шаблоны в выходных данных ps, вы можете передать аргумент grep, это может быть имя процесса или PID:

    process firefox
    
  • apacheожидает служебную команду типа:

    apache restart
    

Связанный контент