Bash脚本,read结束脚本?

时间:2012-11-08 16:13:50

标签: bash shell sh

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

它永远不会让它回应“两个”

无论我是否以任何不同的方式手动传递参数(这是接收SNMP陷阱,参数来)。

编辑:这有权限等,我通过手动启动测试它,“一个”回应。

2 个答案:

答案 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将等待用户输入任何数据,直到他按下返回键,用户输入的数据将存储在主机中。

相关问题