在Debian上可以使用以下代码,但在CentOS上它只是中止而没有任何错误。错误是什么?我无法理解。
echo "Test 1"
ANSWER=""
read -p "Enter y or n " ANSWER;
echo "Test 2"
输出看起来像是那样:
Test 1
我也尝试了没有参数-p的read命令,但这也无效:
echo "Test 1"
ANSWER=""
echo "Enter y or n "
read ANSWER;
echo "Test 2"
输出:
Test 1
Enter y or n
如果我在命令行执行命令它是否正常工作,应该怎么做。该脚本有以下“标题”:#!/ bin / bash
有人可以帮忙吗?
答案 0 :(得分:0)
试试这个
#!/bin/bash
echo "Test 1"
read -p "Enter y/n: " ANSWER
echo " Test 2: ${ANSWER}"
在答案结束时你不需要关闭。
答案 1 :(得分:0)
@ user2966991 - 从stdin读取的脚本位于更大的while循环中,该循环通过stdin读取文件。这不行。尝试将stdin重定向到不同的文件处理程序。
考虑这个示例代码。这不会起作用,因为while循环和read都是从stdin读取的。
#!/bin/bash
cat samplefile | while read line; do
read -p "$line (y/n)?" ANSWER
done
现在考虑其他代码。
#!/bin/bash
# save stdin to file descriptor 5
exec 5<&0
cat samplefile | while read line; do
read -p "$line (y/n)?" ANSWER <&5
done
# restore stdin and close file descriptor 5
exec 0<&5 5>&-
我个人更喜欢输入重定向而不是管道。
cat file | while read var; do
...
done
可以写成
while read var; do
...
done < file
下次请在此发布您的脚本,否则您将无法得到任何答案。