Как создать каталог в функции - PullRequest
1 голос
/ 30 мая 2019

Редактирование:

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

dest_path=/home/all/todo    
line="name"

mkdir_for_name() {
echo $1
mkdir $2
}

mkdir_for_name $name
mkdir_for_name $dest_path/$name

Что не так с этим синтаксисом?

Ответы [ 3 ]

2 голосов
/ 30 мая 2019

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

mkdir_for_name  "$name"  "$dest_path/$name"

Полный скрипт:

dest_path=/home/all/todo    
line="name"

mkdir_for_name() {
echo "$1"
mkdir "$2"
}

mkdir_for_name  "$name"  "$dest_path/$name"
0 голосов
/ 30 мая 2019

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

0 голосов
/ 30 мая 2019

Ваша функция использует $2, но вы вызываете ее только с одним аргументом, поэтому $2 пусто.

...