#!/bin/sh
echo "one"
read host
echo "two"
read ip
echo "three"
read oid
read oid
echo $oid $host >> logger.txt
它永远不会让它回应“两个”
无论我是否以任何不同的方式手动传递参数(这是接收SNMP陷阱,参数来)。
编辑:这有权限等,我通过手动启动测试它,“一个”回应。答案 0 :(得分:4)
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
答案 1 :(得分:0)
read实际上等待用户输入。
read host
将等待用户输入任何数据,直到他按下返回键,用户输入的数据将存储在主机中。