#!/bin/sh
echo "one"
read host
echo "two"
read ip
echo "three"
read oid
read oid
echo $oid $host >> logger.txt它永远无法与“二”相呼应。
无论我是否以任何不同的方式手动传递参数(这是为了接收SNMP陷阱,参数来了)。
编辑:这有权限等,我正在通过手动启动它来测试它,"one“是回显的。
发布于 2012-11-09 00:17:05
read等待来自标准输入的输入。
如果您没有手动插入任何输入(在交互式终端中),或者没有提供任何来自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-09 00:20:54
read实际上是等待用户输入。read host将等待用户输入任何数据,直到用户按下return键,用户输入的任何数据都将存储在主机中。
https://stackoverflow.com/questions/13292982
复制相似问题