Как распечатать только название сценария?

Вы сделали обоих cmd1 и cmd2 выполненный параллельно. Вы сказали: “Запустите cmd2 в фоновом режиме и разъедините любую связь с ним. Запустите cmd1 в фоновом режиме и разъедините любую связь с ним”. Вы имели в виду: “Запустите cmd2 в фоновом режиме; когда это будет завершено, запустите cmd1 (также в фоновом режиме)”. С тех пор больше нет никакой связи с фоновой задачей, необходимо создать фоновую задачу, которая выполняет cmd2 затем cmd1. Это cmd2; cmd1 (или скорее cmd2 && cmd1 для выполнения cmd1, только если cmd2 успешно выполняется), и необходимо будет сказать nohup запустить оболочку, работающую в фоновом режиме за этим.

nohup sh -c './cmd2 >result2 && ./cmd1 >result1' &
9
27.04.2015, 19:17
2 ответа

Используйте basename:

#!/bin/bash

basename -- "$0"

Если вы хотите присвоить его переменной, вы должны сделать:

my_name=$(basename -- "$0")
22
27.01.2020, 20:03

posxly, вам нужно только расширение параметров :

#!/bin/bash

printf '%s\n' "${0##*/}"
11
27.01.2020, 20:03

Теги

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