Getopts не работает внутри функции

Если под меткой времени вы имеете в виду "сейчас", а не время файла, то можно попробовать что-нибудь вроде:

find . -type f -name "querry_match" -size +550000000c \
 -exec bash -c 'gzip --suffix $(date +".%m-%d-%Y-%H:%M:%S.z") {}' \;

, где команда даты запускается отдельно для каждого файла. Если хотите ту же дату на всех файлах, что и в начале поиска, просто делаем:

find . -type f -name "querry_match" -size +550000000c \
 -exec gzip --suffix $(date +".%m-%d-%Y-%H:%M:%S.z") {} \;
1
15.03.2018, 16:05
2 ответа

Вы не передаете никаких аргументов в свою mainфункцию. Если вы хотите, чтобы эта функция получала те же аргументы, что и в скрипте, передайте их вместе с:

main "$@"

Вместо:

main

Также относится к вашему сценарию:

9
27.01.2020, 23:12

В функции параметры передаются функции, а не сценарию:

$ cat foo.sh
function main ()
{
    echo "$@"
}

echo "$@"
main
$ bash foo.sh bar
bar

$

Вам нужно передать "$@"наmain:

main "$@"

Хотя я нахожу функцию mainв сценариях довольно бесполезной, если только вы не вызываете mainснова и снова в одном и том же сценарии.

1
27.01.2020, 23:12

Теги

Похожие вопросы