私はC++でいくつかのコマンドシェルを実行してシステムに関する情報を取得できるアプリケーションを作成しています。この問題は、[[ "$devname" == "bus/"* ]]&& continue;
のスクリプトコードでこのコマンドを実行するとエラーが発生します。シェルスクリプトを実行すると、環境がbash
の代わりにdash
になるためです。私は#!/usr/bin/env bash
でコマンドを実行しようとしましたが、うまくいきません。完全なコマンドはインラインでハードコードされているので、シェルスクリプトファイルの使用は避けています。明示的にputenv()
経由SHELL
を設定C++でシェルコマンドを実行するときに環境を強制的にbashにする
1):
私の解決策で私はpopenを使用しているので、私はこのソリューションを使用しますが、16進形式のコマンドを使用してscape文字 – JulianOliveira