gpt4 book ai didi

dash-shell - Shell 脚本输入重定向异常

转载 作者:IT王子 更新时间:2023-10-29 00:20:00 32 4
gpt4 key购买 nike

谁能解释这种行为?运行:

#!/bin/sh
echo "hello world" | read var1 var2
echo $var1
echo $var2

没有任何输出结果,同时:

#!/bin/sh
echo "hello world" > test.file
read var1 var2 < test.file
echo $var1
echo $var2

产生预期的输出:

hello
world

管道不应该一步完成第二个示例中重定向到 test.file 的工作吗?我用 dash 和 bash shell 尝试了相同的代码,并从它们中得到了相同的行为。

最佳答案

最近添加到 bash 的是 lastpipe 选项,它允许管道中的最后一个命令在当前 shell 中运行,而不是子 shell,当作业控制是停用。

#!/bin/bash
set +m # Deactiveate job control
shopt -s lastpipe
echo "hello world" | read var1 var2
echo $var1
echo $var2

确实会输出

hello
world

关于dash-shell - Shell 脚本输入重定向异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2732/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com