Как отключить одновременно несколько программ SAS?

Использование GNUjoinс расширенными данными и первым выходным форматом , плюс echoи tailдля замены заголовка, (, потому что joinпутается несогласованные заголовки):

echo A,B,C,D,E
join -t ',' --header --nocheck-order test1 test2 \
     -a 1 -e NA -1 3 -2 1 -o 1.1,1.2,2.2,1.3,1.4 | tail -n +2

Выход:

A,B,C,D,E
1,1990,2.3 GHz,I001,2473264
2,1991,2.3 GHz,I002,2473265
3,1992,2.3 GHz,I004,2473266
4,1993,1.8 GHz,6050,912432
5,1994,850 MHz,6003,912433
6,1995,NA,6004,21234
0
03.04.2020, 12:13
1 ответ

Я не большой поклонник nohup (Вместо этого я использую disown ), но если вы поставите «nohup» перед каждой командой в сценарии оболочки, это выполнит часть nohup вашего вопроса.

Однако я думаю, что ваши файлы являются программами SAS? Если вы хотите, чтобы SAS работал параллельно в каждой программе SAS:

nohup sas test1_2.sas &
nohup sas test3_4.sas &
etc.

Это будет запускать независимые команды SAS, каждая со своей собственной программой SAS.

Продолжая работу с командой nohup, если они производят вывод, все они будут одновременно записывать в nohup.out. Чтобы предотвратить это, записывайте выходные данные и сообщения об ошибках в отдельный файл для каждой команды :

.
nohup sas test1_2.sas > output1_2.file 2>&1 &
nohup sas test3_4.sas > output3_4.file 2>&1 &
etc.

Добавлен код из комментариев:

Чтобы вызвать команду test.sh,

bash test.sh

(где «bash» — ваш любимый шелл )или отметьте его как исполняемый:

chmod +x test.sh

Поскольку вы новичок, убедитесь и нажмите на галочку, если считаете, что это правильный ответ на ваш вопрос.

1
28.04.2021, 23:18

Теги

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