使用 Qt 获取当前 macOS shell
Get the current macOS shell using Qt
根据this我可以使用这个命令得到它:
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")
我认为唯一的选择是 ~
自己扩展。所以像...
p.start("dscl", QStringList() << "." << "-read" << QDir::homePath() << "UserShell");
根据this我可以使用这个命令得到它:
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")
我认为唯一的选择是 ~
自己扩展。所以像...
p.start("dscl", QStringList() << "." << "-read" << QDir::homePath() << "UserShell");