передавать аргументы из сценария в сценарий

Основная причина отделения архитектурно-независимых файлов от архитектурно-зависимых заключается в том, что их не нужно дублировать в разных архитектурах. Это то, что делают мультиархивные дистрибутивы / операционные системы (например, Debian) для уменьшения использования места в своих архивах.

1
11.01.2018, 10:39
1 ответ

Предполагая, что расширения параметров в test2.shправильно указаны как

find "$1" -type f -mmin +"$2" -exec rm -f {} \;

, тогда test3.shможет вызывать test2.shвот так:

test2.sh "some file name" 5

$1в test2.shзаменится на строку some file name, а $2заменится на 5.

Предполагается, что test2.shнаходится в каталоге, который указан в переменной PATHв test3.sh. Если нет, используйте полный путь (абсолютный или относительный ), например:

./test2.sh "some file name" 5

Также предполагается, что test2.shсначала был сделан исполняемым с помощью chmod +x test2.shи что он имеет правильную строку #!-.


После уточнения в комментарии ниже:

Сценарий test3.shможет выполнять (, предполагая, что это скрипт bash):

read -p 'Enter directory name: ' dirname
read -p 'Enter number of days: ' days

minutes=$(( days * 60 * 24 ))

./test2.sh "$dirname" "$minutes"

Следующим шагом будет проверка ввода пользователя, чтобы $daysбыло действительным целым числом и чтобы $dirnameбыло допустимым именем каталога.

Если не bash, аsh:

printf 'Enter directory name: '
read -r dirname

(etc.)

Большинство реализаций findтакже имеют-delete:

find "$1" -type f -mmin +"$2" -delete
0
28.01.2020, 00:41

Теги

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