Как разделить длинный путь на несколько строк?

Я не знаком с самим autosys, но вы можете запустить долгую -запущенную команду в фоновом режиме, как здесь:

#!/bin/ksh
nohup java DemoJavaProgram 1> output.file 2>&1 </dev/null &

Команда nohupпозволяет команде javaпережить сигналы отбоя. Затем ввод и вывод перенаправляются. Оператор &в конце заставляет команду работать в фоновом режиме.

Обратите внимание, что здесь вы не сможете зависеть от кода статуса выхода. Если по какой-либо причине команда javaне запустится, она запишет сообщение об ошибке в выходной файл и завершит работу.

0
18.03.2021, 15:23
2 ответа

Вы могли бы сделать это с массивом, но команда cdвыглядит несколько сложной:

path=(
    foo1
    foo2
    foo3
    foo4
    bar
)
cd "$(IFS=/; echo "${path[*]}")"

Литералы массивов допускают произвольные пробелы.

1
18.03.2021, 22:24

Вы можете разделить длинную команду на несколько строк, используя обратную косую черту, но вам нужно будет сохранить прямую -косую черту и опустить начальные пробелы:

cd foo1\
/foo2\
/foo3\
/foo4\
/bar

Обратная косая черта является маркером продолжения строки -; когда bash их видит, он включает следующую строку, как если бы она была продолжена с обратной косой черты текущей строки. В результате вы не могли использовать начальные пробелы в этих последующих строках, так как они становились пробелами в текущей строке, создавая ошибку «слишком много аргументов».

7
18.03.2021, 22:24

Теги

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