![](/img/trans.png)
[英]How can I automatically give a running linux program commands with python?
[英]running python in an argument of a program & how to give hex when string expected
我遇到了這個命令,想了解它是如何工作的。 program
只是用於Mac或Linux的簡單c程序命令。
./program `python -c 'print "\xC8\xCE\xC5\x06"'`
1)有人可以解釋此命令的工作原理嗎?
2)這是在期望字符串時為程序提供十六進制值的唯一方法嗎?
這是一種從bash命令行中評估python表達式的方法。 它與C無關。這里唯一的python代碼是print "\\xC8\\xCE\\xC5\\x06"
。 其余的是bash代碼。
您可以在bash python -c "print 'Hello World'"
嘗試此命令
您也可以閱讀man python
以獲得有關python命令行標志的更多信息。
在python字符串中, \\xHH
用於將十六進制值轉換為字符。 在這種情況下, u"\\xC8\\xCE\\xC5" == u"ÈÎÅ"
。 如果您不使用unicode字符串,則輸出將是一些非ASCII字符,該program
可能有意義,但無法在常規bash會話中輸入或打印該字符。 program
可能不在乎該字符串是否可打印,而只是將其視為二進制數據。
bash中的反引號將首先運行附帶的命令,然后將該字符串用作父作用域中的常規bash表達式。 在bash中執行此操作的另一種方法是:
./program $(python -c "print '\xC8\xCE\xC5\x06'")
要回答您的第二個問題:還有其他方法也可以這樣做。 您可能使用printf而不是python。 像這樣:
./program $(printf "\xC8\xCE\xC5\x06")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.