Сценарий оболочки перемещения файлов [дубликат]

Использование execс &имеет мало смысла (хотя это не будет исходным вашей проблемы), это не избавит от дополнительной вилки. С компонентами канала я вижу только сохранение форка с оболочкой zsh, но только если применяется к последнему компоненту канала (cmd1 | exec cmd2, и это означает zsh больше не ожидает другие компоненты трубы).

Здесь вы не перенаправляете скрипт python stderr на ts, хотя вы отправляете его в файл log.Вы, вероятно, захотите:

su -s /bin/sh -c '
  "$0" "$@" 2>&1 |
    ts "[%Y-%m-%d %H:%M:%S]"
  ' user -- test.python "$FULLPATH" > log 2>&1 & 
1
08.03.2017, 17:08
3 ответа

Да.

for name in /home/imp/imp/msgs/*.PK1; do
    mv "$name" "${name%.PK1}.BRD"
done

for name in /home/imp/imp/msgs/*.PK2; do
    mv "$name" "${name%.PK2}.MIX"
done

Первый цикл будет перебирать все файлы *. PK1 в / home / imp / imp / msgs и заменять суффикс имени файла на .BRD .

Второй цикл делает то же самое с другим набором файлов.

Расширение переменной $ {name% .PK2} .MIX удалит строку .PK2 из конца значения, хранящегося в переменной name а затем добавьте строку .MIX в конец результата этого.

5
27.01.2020, 23:16
set -- "BRD" "MIX"
for src in /home/imp/imp/msgs/*.PK[12]; do
   eval "dest=\${src%.*}.\${${src#${src%?}}}"
   /usr/bin/mv "$src" "$dest"
done

Основная идея заключается в том, что мы сохраняем отображение расширения имени файла src в новое расширение с помощью массива «$ @».

$ src содержит name.PK1 $ {src%. *} содержит name $ {src # $ {src%?}} содержит 1 , таким образом, dest оценивается как "имя" "." "BRD" = "name.BRD"

0
27.01.2020, 23:16
cat - <<\eof | make -f - SRCDIR="/home/imp/imp/msgs"
.PHONY:all force
all:$(wildcard $(SRCDIR)/*.PK[12]);
%.PK1:force;/usr/bin/mv "$@" "$(@:.PK1=.BRD)";
%.PK2:force;/usr/bin/mv "$@" "$(@:.PK2=.MIX)";
eof

Команда cat создает makefile на лету. Цели all и force являются фальшивыми => цель всегда будет пересобираться, в нашем случае каждый раз выполняется mv. Команда $(wildcard ...) формирует список всех необходимых *.PK1, *.PK2 файлов.

0
27.01.2020, 23:16

Теги

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