Tcp

如何將接收到的數據從 netcat 傳遞到另一個腳本作為參數?

  • October 7, 2016

我有簡單的 bashnc腳本:

#!/bin/bash
nc -k -l 127.0.0.1 4444 > filename.out

它偵聽4444埠以進行TCP連接。如果可能的話,我不想將接收到的數據重定向到,而是filename.out將每個數據塊(單行文本)script.sh作為參數傳遞。我怎麼做?

提前致謝。

編輯:我也嘗試過:

#!/bin/bash
nc -k -l 127.0.0.1 4444 | /path/to/script.sh

但這不起作用

下面是多輸入腳本的入口點。

#!/bin/bash
[ $# -ge 1 -a -f "$1" ] && input="$1" || input="-"

# your script's payload here

我希望這#!條線是不言自明的

在第二行

$# -ge 1並且正在測試至少一個命令行參數

-a 是布爾值和運算符

-f "$1"正在測試第一個參數是否是文件

&&如果前一個條件成立,則後面是要執行的指令

||接下來是如果測試條件不成立會發生什麼

nc -k -l 127.0.0.1 4444 > filename.out
my_processing_script filename.out

-或者-

nc -k -l 127.0.0.1 4444 | my_processing_script

所以,如果我有一個參數並且它是一個文件,我的輸入就是這個文件,如果沒有,我的輸入來自管道,即"-"

然後你可以隨心所欲地執行你的東西。任何一個

我用有效載荷進行了測試

awk '{print $2}' ${input}

我的輸入來自netstat -rn命令並且以任何一種方式工作。我希望這是你要問的

引用自:https://unix.stackexchange.com/questions/270526