iT邦幫忙

1

Linux 指令一問 (echo)

  • 分享至 

  • xImage

各位前輩好

我最近遇到一個linux指令如下:

echo '{"key":"value"}' | home/example.py -f json

example.py中有使用stdin。

這個指令可以在python運行到stdin時讀入我們給予的那組json

請問關於這樣的指令("echo"和"|"的組合),要去哪裡找相關的資料研讀?

我在網上查到關於"echo"的說明都沒有提到這個用法

另外一般在terminal執行python3檔,都需在前面加個python3

python3 example.py

為何這個指令中不需要?

謝謝各位!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
japhenchen
iT邦超人 1 級 ‧ 2021-12-02 08:10:20
最佳解答

| 是管線符號,把管線左側的stdout餵給右側指令的stdin


只要在.py檔的第一行加入(example)

#!/usr/bin/env python3

並chmod給這個py檔可執行的屬性(+x),系統即可在執行時,以這一行所指示的主執行程式去執行,就不需要在console $之後再加python2或3了..

ffaanngg iT邦新手 5 級 ‧ 2021-12-03 11:01:48 檢舉

謝謝!
我嘗試到的結果是,在home目錄下需要加python3
echo '{"key":"value"}' | python3 example.py -f json
但是上面一層目錄就不用了
echo '{"key":"value"}' | home/example.py -f json

5
Ray
iT邦大神 1 級 ‧ 2021-12-02 09:49:51
ffaanngg iT邦新手 5 級 ‧ 2021-12-03 10:59:09 檢舉

謝謝,不過我現在工作要研究的東西不少,要等有空才能看了

我要發表回答

立即登入回答