Как вызвать функции удара

Возможно, я смотрю на это неправильный путь.. Но здесь я, что я пытаюсь сделать. Сделайте большую часть моей работы с Java, но просто переключенный на Unix (удар) среда. Я делаю это:

[~/Desktop/bashPlay]% cat myFunc
#!/bin/bash

ls2(){
        echo "Hello World"
}

ls3(){
        echo "Testing"
}

echo "this is a test"   
ls2 # this calls a function

[~/Desktop/bashPlay]% myFunc
this is a test
Hello World

Но у меня есть две функции в моем файле, и я хочу смочь назвать их отдельно из командной строки. Т.е.: myFunc.ls2() или даже просто ls2. Я знаю, что могу добавить функции к моему .bashrc файл, но является там любым другим способом, которым я могу выполнить эти функции, не добавляя их к моему .bashrc?

28
задан 27.12.2015, 19:24

3 ответа

Один способ сделать это, которое включает немного больше ввода, через source команда. Для вызывания функции от myFunc, Вы могли использовать source myFunc; ls2 и это произвело бы Привет Мир.

Так, например, мне назвали файл say.sh:

#!/bin/bash

function talk()
{
        echo "hi!"
}

теперь я хочу звонить, это talk() функция из командной строки:

[john@awesome ~]$ source say.sh; talk
hi!

назвать его из другого сценария удара:

#!/bin/bash
source say.sh
talk

Можно также поместить каждого в отдельный сценарий и добавить их в каталоге, который находится в переменной ПУТИ.

так, например, в одном названном сценарии hello Вы имели бы:

#!/bin/bash
echo "Hello World"

теперь поместите его в один из каталогов в Вашем ПУТИ, который можно просмотреть путем выполнения echo $PATH. Можно добавить другой каталог к ПУТИ, если Вы хотели бы или использовали бы существующий. После того как Вы скопировали файл там, сделайте его исполняемым файлом с chmod +x filename.

25
ответ дан 07.12.2019, 09:25

Точечный оператор или source встроенный в bash походит import оператор в Java.

Можно читать больше о точечном операторе или source встроенный.

0
ответ дан 07.12.2019, 09:25

Другой подход должен был бы создать названный сценарий functions.sh~/bin каталог, например).

В этом сценарии Вы добавляете все свои персональные функциональные определения (скажем, каждый раз, когда Вы добавляете функцию, Вы добавляете его к этому файлу...),

Наконец просто необходимо добавить source ~/bin/functions.sh строка к Вашему .bashrc файл. Таким образом, Вы сможете назвать их из командной строки, Вашего .bashrc останется чистым, и у Вас будет определенное место для Ваших персональных функций.

5
ответ дан 07.12.2019, 09:25

Теги

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