Вариант будет вполне проверять данных:
#! /bin/bash
функция readVal () {
пока поистине; сделайте
отголосок - n «$1»
прочитайте val
[- n «$2»] && [- пролом && val= " $2» && z «$val»];
если eval «$3»; после этого
пролом;
fi
eval отголосок «$4»
сделано
}
отголосок «ncp v1.0 rumi»
readVal «вы копируете все директорию/скоросшиватель? (y/N)» =~ y «n» «[[«$val»|n|Y|N]]» «положил y или N.»
случай «$val» внутри
Y|y)
readVal «впишите директорию источника: » "" «[- директория d «$val»]» «\ «$val \» не существуют. Попытка снова.»
params= " - r $val "
; ;
N|n)
i=1
пока поистине; сделайте
readVal «впишите источник file$i: » «_» «[- f «$val»]» «архив \ «$val \» не существует. Попытка снова.»
случай «$val» внутри
«_»)
пролом;
; ;
*)
params= " $params \ «$val \ ""
i=$ (($i+1))
; ;
esac
сделано
; ;
esac
readVal «войдите привод & скоросшиватель назначения (например: форма /c/temp): » "" «[[=~ /./ «$val». *]]» «форма быть \ «/c/temp \». Попытка снова.»
вторьте «выполняющ scp - administrator@localhost P2222 $params: $val…»
scp - administrator@localhost P2222 $params: $val
rgds
rumi