Лучший способ доступа к файлам внутри каталогов с общей частью имени каталога

Судя по тому, что вы описываете, похоже, что в PROCESS2 есть что-то принципиально неправильное, из-за чего он завершается. Если я смоделирую то, что вы описываете, с помощью 3 процессов, это в основном будет работать так, как и следовало ожидать, когда вы создаете фон для 3 процессов, а затем захватываете и передаете PID 2-го процесса процессу 3.

Пример

пример скрипта
$ cat runny.bash
#!/bin/bash

proc3func() {
  echo $1
  sleep 7 &
}

sleep 9 &
sleep 8 &
PID2=$!
proc3func ${PID2} &
пример запуска
$./runny.bash ; sleep 2; ps -eaf
4279
UID        PID  PPID  C STIME TTY          TIME CMD
...
vagrant   4278     1  0 20:21 pts/1    00:00:00 sleep 9
vagrant   4279     1  0 20:21 pts/1    00:00:00 sleep 8
vagrant   4282     1  0 20:21 pts/1    00:00:00 sleep 7

В приведенном выше выводе мы видим PID, 4279, отображаемый на экране, за которым следует вывод ps -eaf, который показывает наши 3 процесса.

Отладка

Я бы посоветовал включить set -x, чтобы вы могли следить за тем, какие команды выполняются при запуске скрипта или при его запуске вот так:

$ bash -x./runny.bash
+ PID2=4612
+ sleep 9
+ sleep 8
+ proc3func 4612
+ echo 4612
4612
+ sleep 7
1
21.06.2021, 16:35
1 ответ

С помощью zsh, чтобы переместить все файлы test_n_part*/*вtest_n:

autoload zmv
mkmv() {mkdir -p -- $2:h && mv -- "$@"}

zmv -n -P mkmv '(test_<->)_part*/(*)' '$1/$2'

(снять -nдля работы всухую -если все устраивает ).

Добавьте (#qD)к исходному паттерну, чтобы также перемещать скрытые файлы.

0
28.07.2021, 11:23

Теги

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