Вы можете сначала поместить все параметры в файл, а затем использовать
parallel -a filename command
Например:
echo "--fullscreen $(find /tmp -name *MAY*.pdf) $(find /tmp -name *MAY*.pdf).out" >> /tmp/a
echo "--page-label=3 $(find /tmp -name *MAY*.pdf) $(find /tmp -name *JUNE*.pdf).out" >> /tmp/a
echo "--fullscreen $(find /tmp -name *MAY*.pdf) $(find /tmp -name *JULY*.pdf).out" >> /tmp/a
Затем выполните команду:
parallel -a /tmp/a evince
Если в каталоге /var/backups/db
есть только один подкаталог, то с помощью
set -- /var/backups/db/*/
dirpath=$1
назначит путь к этому каталогу переменной dirpath
.
Косая черта в конце шаблона подстановки гарантирует, что шаблон всегда будет соответствовать только каталогам.
Вы также можете установить опцию оболочкиfailglob
(shopt -s failglob
). Это заставит оболочку генерировать диагностическое сообщение, если шаблон ничему не соответствует. Это дополнительно позволит вам выйти из скрипта в этот момент при сбое:
shopt -s failglob
set -- /var/backups/db/*/ || exit 1
dirpath=$1
После этого фрагмента кода у вас также будет все пути к каталогам в "$@"
(, если у вас есть более одного ).
Каталог также является строкой (последовательностью символов ).
Вы можете назначить полный каталог переменной следующим образом:
$ basic_dir=/var/backups/db
$ change_dir=db_backup_109245_abc
$ full_dir=$basic_dir/$change_dir
$ echo "$full_dir/"
/var/backups/db/db_backup_109245_abc/
Предполагая, что вы можете полагаться на гипотезу:
, тогда вы можете получить этот путь, используя
backup_path=$(ls -t /var/backups/db/ |grep db_backup_ | head -1)
Хорошо, я понял:
BackupDir=$(find /var/backups/db/* -maxdepth 0 -type d)