1
votes

Comment créer un répertoire dans une fonction

Édition:

J'essaye de créer une fonction simple qui imprime un nom, puis crée un répertoire. Je suis nouveau dans la création de fonctions dans bash, donc j'ai le script ci-dessous qui n'a pas fonctionné:

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

mkdir_for_name() {
echo $1
mkdir $2
}

mkdir_for_name $name
mkdir_for_name $dest_path/$name

Quel est le problème avec cette syntaxe?

p>


1 commentaires

Quel est le répertoire que vous souhaitez créer?


3 Réponses :


0
votes

Votre fonction utilise $ 2 , mais vous ne l'appelez qu'avec un seul argument, donc $ 2 est vide.


0 commentaires

2
votes

Puisque vous utilisez echo , je crois que vous voulez imprimer le nom du répertoire; et bien sûr, vous devez passer 2 arguments à votre fonction. Peut être appeler votre fonction de la manière suivante. De cette façon, vous n'avez pas besoin de changer votre code.

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

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

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

Script complet:

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


2 commentaires

J'essaye d'abord de faire écho au $ name, puis j'aimerais créer un répertoire ...


@Bella, bien sûr que ça fait la même chose.



0
votes

Vous avez défini une fonction qui accepte 2 arguments, où le premier argument passé est le nom à imprimer à l'écran (la ligne "echo"), tandis que le second argument passé créera le dossier souhaité. Passer un seul argument affichera simplement cet argument à l'écran


0 commentaires