Как я могу запустить дополнительную консоль и выполнить некоторые команды в ней?

Следующее не работает на меня:

#!/bin/bash

commands () {
    cd ~/Yola
    pwd
}

export -f commands

konsole --noclose -e "bash -c 'commands'" 

Новая консоль открывается, но команды не выполняются.

1
задан 4 August 2017 в 11:18

1 ответ

Двойные кавычки вокруг строки, проанализированной как аргумент, означают, что строка выполняется как дочерний процесс, т.е. это - содержание, не влияют на родительский процесс.

Одинарные кавычки ничего не делают к символам между ними, так переключите двойные кавычки для одинарных кавычек на Вашей последней строке, как так:

konsole --noclose -e 'bash -c commands'

(Ваш commands для функции не нужны никакие кавычки вокруг этого.), Если Вы выполняете длинный список команд таким образом, я рекомендую -x флаг, который распечатывает команды и вывод в порядке. Использовать konsole --noclose -e 'bash -cx commands' выводить следующую печать:

+ commands + cd ~/Yola + pwd /home/Yola

1
ответ дан 7 December 2019 в 15:32

Другие вопросы по тегам:

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