1. ホーム
  2. linux

[解決済み】Bashのexportコマンド

2022-01-26 14:53:28

質問

64ビット版Ubuntuで奇妙な問題が発生しています。 輸出 コマンドを実行します。

基本的に、私はWindows 7システム上にUbuntuのVMインストールを持っており、私はカスタム(クライアントによって与えられた)ソフトウェアを使用して、WindowsシステムからVMインストールにコマンドを渡そうとしています。

で、私のVM上で、私がやると。

export foo=bar
echo $foo

はすべて期待通りに動作します。

しかし、カスタムソフトウェア(基本的にLinuxのコマンドをbashシェルに文字列として渡す)を通して同じことをすると、次のようになります。

export: command not found

を使って、(カスタムソフトを使って)シェルを見てみました。

echo $SHELL > shell.txt

そして、私は /bin/bash というのは予想通りなのですが、やはり "エクスポート: コマンドが見つかりませんエラー"。 .

どうすれば直せますか?

解決方法は?

export はBashのビルトインです。 echo は、自分の中の実行ファイル $PATH . そのため export は、新しいプロセスを生成することなく、そのままBashで解釈されます。

Bashにコマンドを解釈させる必要がありますが、これは文字列として -c オプションで指定します。

bash -c "export foo=bar; echo \$foo"

その他

の各呼び出しは bash -c は新しい環境から始まります。だから、次のようなものです。

bash -c "export foo=bar"
bash -c "echo \$foo"

は動作しません。2回目の起動では foo .

で区切られたコマンドを連鎖させる必要があります。 ; を1回呼び出すだけで bash -c :

bash -c "export foo=bar; echo \$foo"