os.systemで変数を渡すにはどうすればよいですか?[閉まっている]


0

私はこのコマンドを使用して変数を挿入しています:

`os.system("sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get()))`

そしてそれはうまく動作しますが、他の変数を追加すると動作しないようで、変数が挿入されません。

os.system("sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get())+ "delay=" +(R2.get())+ "tcp_port=" +(R3.get()))

この質問はUbuntuに固有のものではないため、StackOverflowまたはUnix / Linux StackExchangeでより良い回答を得ることができます。

回答:


1

これらの場合の最良の方法は、使用する前に文字列を印刷して、すべてが正しいかどうかを確認することです。

command = "sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get())+ "delay=" +(R2.get())+ "tcp_port=" +(R3.get())
print(command)
os.system(command)

私の推測では、delaytcp_portパラメータの前にスペースがありません。

command = "sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get())+ " delay=" +(R2.get())+ " tcp_port=" +(R3.get())

次に、少し物事を整理します。

command = "sudo insmod /home/hajer/final_module/module.ko src_ip=%s delay=%s tcp_port=%s" % (R1.get(), R2.get(), R3.get())

またos.system、廃止されましたsubprocess。代わりにモジュールを使用する必要があります。


スペースで動作します:D thnx
M.hajer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.