Не решено Аргументы и функции Bash

Pythonchik

Почетный гость
Здравствуйте! Помогите, пожалуйста, дописать скрипт, с помощью которого через аргументы при выполнении сценария можно вызывать определённые функции. Прикладываю уже написанный код. Когда пытаюсь запустить скрипт, например, ./script.sh -c txt<скопировать все файлы с расширение txt> copy<в созданную папку>, выдаёт ошибку.

Заранее спасибо)

Bash:
#!/bin/bash
function copy_file {
    cp *$2* $3                       #КОПИРОВАНИЕ
}
# result2=$( copy_file $1 $2 )
function arch {
    tar -zcvf $2 $3        #АРХИВАЦИЯ
}
# result1=$( arch $2 $3 )
function repl_txt {
    sed -i 's/'$3'/'$4'/gI' $2       #ЗАМЕНА ТЕКСТА
}
# result3=$( repl_txt $2 $3 $4 )
function del {
    rmdir $2 && rm -rf $3               #УДАЛЕНИЕ
}
# result4=$( del $2 $3 )
function hash_txt {
    while IFS= read -r line
    do
        if [[ $line != *"@"* ]]                         
        then
        echo "$line" | md5sum  >> hash.txt               #ХЭШ ПАРОЛЕЙ
        else
        echo "$line" >> hash.txt
        fi
    done < $2
}
# result5=$( hash_txt $2 )
function empty {
    awk '{if(NF>0) print $0 > "lines.txt"}' $2            #ПУСТЫЕ СТРОКИ
}
# result6=$( empty $2 )
function info_user {
    finger $2
    echo ---------------------------------------------------------------------------------------
    echo ---------------------------------------------------------------------------------------
    curl wttr.in
    # wget -O- -q wttr.in
}
# result7=$( info_user $2 )
while [ -n "$1" ]
do
case "$1" in
-ar) arch $2 $3 ;;
-c) copy_file $2 $3 ;;
-r) repl_txt $2 $3 $4 ;;
-d) del $2 $3 ;;
-h) hash_txt $2 ;;
-e) empty $2 ;;
-i) info_user $2 ;;
esac
shift
done
 
Последнее редактирование модератором:
Верх Низ