我如何启动额外的 konsole 并在其中运行一些命令?

我如何启动额外的 konsole 并在其中运行一些命令?

以下对我不起作用:

#!/bin/bash

commands () {
    cd ~/Yola
    pwd
}

export -f commands

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

新的控制台打开了,但是命令未执行。

答案1

作为参数解析的字符串周围的双引号意味着该字符串作为子进程运行,即其内容不会影响父进程。

单引号不会对它们之间的字符产生任何影响,因此在最后一行将双引号替换为单引号,如下所示:

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

(您的commands函数不需要任何引号。)如果您以这种方式运行一长串命令,我建议使用-x按顺序打印出命令和输出的标志。使用konsole --noclose -e 'bash -cx commands'可获得以下打印输出:

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

相关内容