У меня есть программа, которая будет принимать пользовательскую строку ввода и создавать выходные файлы соответственно, например «./bashexample2 J40087», это создаст выходные файлы для всех файлов в папке которые содержат строку J40087. Одна из проблем заключается в том, что если пользователь ничего не вводит во входной строке, он будет генерировать выходные файлы для каждого файла внутри содержащейся папки. Есть ли способ запретить пользователю вводить ничего во входную строку? Или, возможно, выплюнуть какое-то предупреждение: «Пожалуйста, введите входную строку».Как запретить пользователю вводить ничего в bash-скрипт
#Please follow the following example as input: xl-irv-05{kmoslehp}312: ./bashexample2 J40087
#!/bin/bash
directory=$(cd `dirname .` && pwd) ##declaring current path
tag=$1 ##declaring argument which is the user input string
echo find: $tag on $directory ##output input string in current directory.
find $directory . -maxdepth 0 -type f -exec grep -sl "$tag" {} \; ##this finds the string the user requested
for files in "$directory"/*"$tag"* ##for all the files with input string name...
do
if [[ $files == *.std ]]; then ##if files have .std extensions convert them to .sum files...
/projects/OPSLIB/BCMTOOLS/sumfmt_linux < "$files" > "${files}.sum"
fi
if [[ $files == *.txt ]]; then ## if files have .txt extensions grep all fails and convert them..
egrep "device|Device|\(F\)" "$files" > "${files}.fail"
fi
echo $files ##print all files that we found
done
Возможный дубликат [bash shell script check input argument] (http://stackoverflow.com/questions/6482377/bash-shell-script-check-input-argument) – superEb