# Autore: Andreea Dornescu # Anno accademico: 2022/23 #!/bin/bash #file invoker #controllo argomenti if test $# -ne 4 then echo Errore nel numero di parametri exit -1 fi if [[ ! -d "$1" ]]; then echo Non è una cartella! exit -2 fi if [[ ! -f "$4" ]]; then echo Non è un file! exit -3 fi if [[ "$4" != /* ]]; then echo $4 non è un percorso assoluto valido. exit 4 fi if [[ "$3" != .??? ]]; then echo Formato stringa sbagliato exit -2 fi #Salvo gli argomenti in variabili dirin=$1 string=$2 ext=$3 fout=$4 #gestisco $0 case "$0" in # il file comandi è stato invocato con un / Path assoluto. /*) dir_name=`dirname $0` recursive_command="$dir_name/ricorsione.sh" ;; */*) # il file comandi è stato invocato con un path relativo. dir_name=`dirname $0` recursive_command="`pwd`/$dir_name/ricorsione.sh" ;; *) #Path né assoluto né relativo, il comando è nel $PATH recursive_command=ricorsione.sh ;; esac #innesco la ricorsione "$recursive_command" "$dirin" "$string" "$ext" "$fout"