例如,我想將 `print(32) 發送到 python,它應該列印 32 并保持打開狀態,直到我按 ctrl d
我做了以下
echo 'print(32)' | python
但它只列印 32 并關閉 python。
我要保持python的互動式shell打開,這樣我就可以用我的鍵盤進一步向它發送命令。
編輯:那只是例子。而不是python,它可以是node,ruby或docker exec -it命令。
基本上我想通過管道輸出,就像我通過鍵盤打字一樣
uj5u.com熱心網友回復:
使用該-i標志讓python在運行腳本后進行互動檢查,結合<(..)bash中的行程替換構造。這將使 python 命令假設命令來自檔案,即使它不是
python -i <(echo 'print(32)')
32
>>>
或將PYTHONINSPECT變數設定為非空字串以模擬-i行為
PYTHONINSPECT=x python <(echo 'print(32)')
請注意,POSIX 模式不支持行程替換,但僅支持 bash/zsh 或 ksh93。
uj5u.com熱心網友回復:
如果您使用 xdotool 安裝在 xwindow 中,則可以使用以下命令模擬該行為:
#!/bin/bash
feed_initial_input(){
local initial_input="$1"; shift
{ sleep 0.3; xdotool type "$initial_input"$'\n'; } &
"$@"
}
feed_initial_input "print(32)" python
feed_initial_input "console.log('Hello world!')" node
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/356300.html
上一篇:Makefile:比較來自gittag和package.json的兩個版本字串值
下一篇:遞回列印變數值的Shell腳本
