3

我在脚本中有以下代码段:

exec 3<<<"$(zenity --entry --title="Enter PIN" | validate_pin || error_handler )"

在其他地方,我必须通过文件描述符传递 PIN,因此这里的重定向和命令替换。

的输出validate_pin是输入 PIN 的修改值,但退出代码确定它是否成功和有效。error_handler为了管理任何故障,我可以投入什么?

如果我有exit,它只会退出命令替换子shell。FAIL=1一旦命令替换子shell关闭,分配的变量(等)也会被清除。读取文件描述符检查工作,但随后关闭,后续进程无法使用。

4

1 回答 1

1

到目前为止我发现的最好的方法是使用临时文件。

exec 3<<<"$(zenity --entry --title="Enter PIN" | validate_pin || touch .fail )"
if [[ -f .fail ]] ; then
    do_stuff
fi
于 2015-05-27T12:58:17.017 回答