Как вызвать просто функцию из текстового сценария?

У меня есть текстовый файл с большим количеством функций в нем. например:

# fisrt function
# runs update and upgrade
    function upug() {
        sudo apt-get update && sudo apt-get upgrade
    }

# second function
# find out the processes running that use the most memory
    function memusage() {
        ps aux | sort -nrk 4 | head
    }
# third function
# install package
    function ipkg() {
        sudo apt-get install
    }
[...]

Теперь я хочу к способному использованию эти функции как подобное что-то следующим образом в терминале:

  • с выполнением upug в вызовах терминала function upug()

    user@test-pc:~$ upug 
    
  • с выполнением memusage в вызовах терминала function memusage()

    user@test-pc:~$ memusage
    
  • с unning ipkg package_Name вызовы function ipkg()

    user@test-pc:~$ ipkg package_Name
    

Я создал псевдоним для каждой из этих команд с именами функций. теперь вопрос состоит в том, как я могу звонить, они функционируют с названием псевдонима этого?

2
задан 8 October 2014 в 00:51

2 ответа

На вашем месте я поместил и функции и псевдонимы в мой ~/.bash_aliases (См. Псевдонимы: различие между .bash_rc, .bash_aliases и/usr/local/bin).

, Так как Вам уже определили псевдонимы на Вашей текущей сессии, Вы могли просто получить текстовый файл для позже вызова команд псевдонима:

user@test-pc:~$ . <PATH_TO_YOUR_TEXT_COMMANDS>/my_commands.txt
user@test-pc:~$ upug

, Кроме того, можно загрузить файл из Вашего ~/.bashrc следующим образом:

if [ -f <PATH_TO_YOUR_TEXT_COMMANDS>/my_commands.txt ]; then
    . <PATH_TO_YOUR_TEXT_COMMANDS>/my_commands.txt
fi
1
ответ дан 20 November 2019 в 00:19

Наконец я нашел легкое решение. Я сохранил текстовый файл именованным my_funcs, и это находится в моем корневом каталоге. тогда я вызываю функцию со следующей командой:

source file_Name; func_Nmae [extra_Parameters]

, например, чтобы использовать ipkg функция и установить любой пакет я использовал простую команду как ниже команды:

source my_funcs; ipkg package_Nmae

результат выполнения source my_funcs; ipkg vlc как следует:

kasiya@kasiya-pc:~$ source my_funcs; ipkg vlc

[sudo] password for kasiya: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
[...]

И я работаю alias go='source my_funcs;' в терминале для добавления этой команды к go как псевдоним в ~/.bashrc файл и в следующий раз я просто использование короткой команды для установки пакета или использования любых функций:

go function_Name [parameters]

ПРОХЛАДНЫЙ!

1
ответ дан 20 November 2019 в 00:19

Другие вопросы по тегам:

Похожие вопросы: