0
#!/bin/sh
echo "one"
read host
echo "two"
read ip
echo "three"
read oid
read oid
echo $oid $host >> logger.txt

「2つ」をエコーすることは決してありません

さまざまな方法で手動でパラメーターを渡すかどうか(これはSNMPトラップを受信するためであり、パラメーターが来るかどうかは関係ありません)。

編集:これには権限などがあります。手動で起動してテストしています。「1つ」がエコーされます。

4

2 に答える 2

4

readSTDINからの入力を待ちます。

(対話型端末で)手動で入力を挿入しない場合、または次のように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
于 2012-11-08T16:17:04.997 に答える
0

readは実際にはユーザー入力を待ちます。 read hostユーザーがリターンキーを押すまでデータを入力するのを待ち、ユーザーが入力したデータはすべてホストに保存されます。

于 2012-11-08T16:20:54.470 に答える