0

据此,可以使用以下命令获取它:

dscl . -read ~/ UserShell

因此,我使用以下代码编写了此代码Qt

QProcess p;
p.setProcessChannelMode(QProcess::MergedChannels);
p.start("dscl", QStringList() << "." << "-read" << "~/" << "UserShell");
p.waitForFinished();
auto result = QString::fromUtf8(p.readAll());

但是,result是空的。我究竟做错了什么?此命令在终端应用程序中运行良好。

补充 #1。这行得通,但看起来很愚蠢:)

p.start("bash", QStringList() << "-c" << "dscl . -read ~/ UserShell")
4

1 回答 1

1

我认为唯一的选择是扩展~自己。所以像...

p.start("dscl", QStringList() << "." << "-read" << QDir::homePath() << "UserShell");
于 2021-11-02T12:43:05.903 回答