#!/bin/sh
echo "one"
read host
echo "two"
read ip
echo "three"
read oid
read oid
echo $oid $host >> logger.txt
它從未它對呼應「兩節」Bash腳本,閱讀結束腳本?
沒有,如果我傳遞參數(這是接收SNMP陷阱和參數來)在任何不同的方式手動問題。
編輯:這有權限等等,我通過手動啓動它來測試它,「一」是回聲。
#!/bin/sh
echo "one"
read host
echo "two"
read ip
echo "three"
read oid
read oid
echo $oid $host >> logger.txt
它從未它對呼應「兩節」Bash腳本,閱讀結束腳本?
沒有,如果我傳遞參數(這是接收SNMP陷阱和參數來)在任何不同的方式手動問題。
編輯:這有權限等等,我通過手動啓動它來測試它,「一」是回聲。
read
等待STDIN的輸入。
如果不插入用手任意輸入(在交互式終端),或者你不從STDIN提供任何輸入這樣的:
echo -e "my_host\n192.168.1.100\nfoo\nbar" | ./myscript
它將掛斷等待輸入
在示例\n
是一個換行符。
如果要訪問參數,請不要使用read
,而是使用$ 1 ... $ n變量。
./myscript my_host 192.168.1.100 foo
你需要這樣的:
#!/bin/sh
host=$1
ip=$2
oid=$3
echo $oid $host >> logger.txt
謝謝,這解釋了我在CLI中傳遞參數的地方。 –
實際讀取等待用戶輸入。 read host
將等待用戶輸入任何數據,直到他按下返回鍵,並且數據用戶輸入的數據將存儲在主機中。
'read'從標準輸入中讀取,並且它會阻塞,直到它接收到該輸入;所以通過「結束」,你的意思是「掛起」? – ruakh
你是否試圖對傳遞給腳本的參數採取這樣的行動? - 'yourscript.sh HOST_NAME IP OID OID' – Buggabill