Я хотел бы получить значение по умолчанию для флага -8, если кто-то запускает -9 и не ставит ничего для OPTARG после флага ИЛИ я могу проверить, является ли OPTARG нулевым, и заменить пустое значение на базовоезначение.
ft1 и ftx - просто функции форматирования.
Когда я запускаю мой goat -8
, он печатает этот файл
Когда я запускаю goat -9 SEARCH STRING
, он печатает файл только с результатами этой строки поиска.
Если я запускаю goat -9
и не помещаю строку поиска, это ничего не делает, потому что OPTARG
пусто, поэтому программе поиска нечего искать.
Я бы хотел, чтобы он мог изменить -9
на -8
, если пользователь не введет строку после goat -9
.
function goat() {
local OPTIND
local OPTARG
if [ "$1" = "" ] ;
then ft1 ;
printf "
This command requires an OPTION. Refer to the help menu (-h) for assistance.
" | layoutcc
ft1 ;
fi
while getopts ":h89:" opt;
do case $opt in
8) for file in analysis/connection_history.txt ; do ftx $file | layoutcc ;
printf "%s" "$(<$file)"
echo ;
ft1 ;
done
;;
9) grep_expr=$OPTARG
for file in analysis/connection_history.txt ; do
ftx "$file" | layoutcc
grep "$grep_expr" $file | perl -ne 'print if /-201[8-9]/' |
perl -pe 's/......-2019/\e[1;32m$&\e[0m/g'
echo
ft1
done
;;
function ft1
{
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
}
function ft2
{
ft1 ;
ft1
}
function ftx
{
ft1 ;
echo " File Name: $1 $(grep -h "Created on" *-Report.txt | head -n1)"
ft1
}
function fsx
{
ft1 ;
echo " File Name: $1"
ft1
}