![Bash 脚本抛出错误“读取错误:0:资源暂时不可用”](https://linux22.com/image/490031/Bash%20%E8%84%9A%E6%9C%AC%E6%8A%9B%E5%87%BA%E9%94%99%E8%AF%AF%E2%80%9C%E8%AF%BB%E5%8F%96%E9%94%99%E8%AF%AF%EF%BC%9A0%EF%BC%9A%E8%B5%84%E6%BA%90%E6%9A%82%E6%97%B6%E4%B8%8D%E5%8F%AF%E7%94%A8%E2%80%9D.png)
read error: 0: Resource temporarily unavailable
当第二次需要用户输入(Unix 用户名)时,我的脚本会抛出错误。
我怀疑这与第一个后台进程(linux_fetch &)出错有关。
我该如何解决这个问题,以便用户提示(Unix 用户名)发布的后台进程不受影响。
以下是脚本的简短片段。
if [ -r $linux_host_list ]
then
echo
read -p 'Linux Username:' LUSERNAME
read -p 'Linux Password:' LPASS
linux_fetch &
clear screen
else
echo "No Linux Servers found"
fi
if [ -r $unix_host_list ]
then
echo
read -p 'Unix Username:' UNIXUNAME
read -p 'Unix Password:' UPASS
unix_fetch &
clear screen
else
echo "No Unix Servers found."
fi
答案1
我敢打赌,该unix_fetch
进程正在关闭或对 stdin 执行其他疯狂的操作。尝试使用 运行unix_fetch
,</dev/null
以便将其 stdin 重定向到不会造成任何损害的地方。
答案2
简单地将错误重定向到 /dev/null 对我来说就解决了问题。
linux_fetch 2> /dev/null &
unix_fetch 2> /dev/null &