Como posso iniciar o konsole adicional e executar alguns comandos nele?

1

O seguinte não funciona para mim:

#!/bin/bash

commands () {
    cd ~/Yola
    pwd
}

export -f commands

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

Novo konsole é aberto, mas os comandos não são executados.

    
por Yola 04.08.2017 / 10:18

1 resposta

1

As aspas duplas em torno de uma string analisada como um argumento significam que a string é executada como um processo filho, ou seja, seu conteúdo não afeta o processo pai.

Aspas simples não fazem nada para os caracteres entre elas, portanto, alterne aspas duplas para aspas simples em sua última linha, assim:

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

(Sua função commands não precisa de nenhuma aspas em torno dela). Se você estiver executando uma longa lista de comandos dessa maneira, recomendo o -x flag que imprime comandos e exibe a ordem. Use konsole --noclose -e 'bash -cx commands' para obter a seguinte impressão:

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

    
por airdas 16.10.2017 / 13:40