функция сценария экспорта

Вы не должны пытаться проанализировать вывод ls.

Кроме того, необходимо заключить Ваш в кавычки "$file" получать любой пробел. См. http://www.grymoire.com/Unix/Quote.html

Что-то вроде этого могло бы достигнуть того, что Вы после:

for file in *; do touch "$file"; done

Посмотрите первые две Ловушки Bash для более полного объяснения.

3
13.04.2017, 15:36
3 ответа

Сценарий не может продвинуть определения до Вас. Необходимо ввести их из сценария путем определения источника их. Это сделано . /usr/bin/cdjs (если сценарий был в/usr/bin/cdjs). После этого можно использовать cdjs в любое время.

Ваш коллега, возможно, предлагал делать сценарии функций вместо этого. cdjs функция может быть сделана сценарием, но для нее для работы необходимо получить сценарий каждый раз, когда Вы используете ее, как это: . cd2js.

Чтобы сделать это, у Вас был бы файл /usr/bin/cd2js который является исполняемым файлом и содержит:

$/bin/sh
cd /domains/"$1"/applications/j2ee-apps

Если Вы часто делаете ограниченное количество вещей в том каталоге, Вы могли бы хотеть сделать несколько сценариев, который делает те вещи для Вас.

Таким образом, у Вас может быть сценарий как это:

#!/bin/sh

ls /domains/"$1"/applications/j2ee-apps/

И помещенный это в /usr/bin/lsj2. Затем можно просто сделать lsj2 some-domain-1 в любое время для наблюдения содержания.

4
27.01.2020, 21:10

Существует две полностью отдельных вещи на работе здесь. Сценарии оболочки являются исполняемыми файлами, которые можно выполнить непосредственно, поэтому при создании файла /usr/bin/foo (Вы не должны вручную помещать материал там, но так или иначе), Вы сможете работать foo и это выполнило бы это:

$ cat /usr/bin/foo
#!/bin/bash
echo One

$ foo
One

Функции являются также исполняемым файлом по имени, но они должны быть определены сначала, который происходит, когда Вы вводите их непосредственно в оболочку или получаете файл, который содержит их с source или . команды:

$ function bar() {echo Two;}

$ bar
Two

$ cat functions.sh
function baz() {echo Three;}

$ baz
command not found: baz

$ . functions.sh

$ baz
Three

Определение функций в файлах, которые находятся на Вашем пути, ничего не сделает; все еще необходимо получить те файлы в сценарии входа в систему. Если Вы хотите сделать отдельные сценарии, Вы могли бы также просто назвать их тем же как их функции и избавиться от функции полностью, таким образом, можно просто позвать сценарий по имени

6
27.01.2020, 21:10

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

0
27.01.2020, 21:10
  • 1
    Вы предназначали это, чтобы быть комментарием к вопросу? –  Michael Mrozek♦ 10.10.2011, 22:18
  • 2
    Нет, это был вид половины решения. Я думаю, что был на правильном пути с этим, но имел несколько пропавших без вести частей.Спасибо. Право –  javamonkey79 11.10.2011, 00:03

Теги

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