#!/bin/sh
echo "one"
read host
echo "two"
read ip
echo "three"
read oid
read oid
echo $oid $host >> logger.txt
它永远不会回荡"两个"
无论我是否通过参数(这是要接收SNMP陷阱,并且参数都会出现)。
编辑:这具有权限等,我正在通过手动启动"一个"来测试它。
read
等待stdin的输入。
如果您不手工插入任何输入(在交互式终端),或者您不提供类似STDIN的任何输入:
echo -e "my_hostn192.168.1.100nfoonbar" | ./myscript
它将挂在等待输入
在示例中n
是一个newline。
如果要访问参数,请勿使用read
,而是$ 1 ... $ n变量。
./myscript my_host 192.168.1.100 foo
您需要此:
#!/bin/sh
host=$1
ip=$2
oid=$3
echo $oid $host >> logger.txt
读取实际等待用户输入。 read host
将等待用户输入任何数据,直到他按下返回键,并且数据用户输入的内容将存储在主机中。