小编con*_*rum的帖子

进程替换中的猫挂起:它在等什么?

我有一段使用进程替换的代码

当我运行它时,它工作正常,但它不会退出 -只是挂在那里等待输入。

为什么以及如何克服?

prepro() { 
        in=$(< <(cat) )         # capture input
        echo -e "$in"
}

echo -e "some words" > >(prepro)
echo "FINISHED"
Run Code Online (Sandbox Code Playgroud)

相反,如果我这样做,它会立即退出。

echo -e "$in" >>"test.log"
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

澄清: BASH 4.4.19(1)-release

在我的电脑上,我看到了 runningecho -e "$in"和 running之间的区别echo -e "$in" >>"test.log"

前者不给我提示(但我可以正常运行命令)。我得到:

user@server:~$ ./test.sh
FINISHED
user@server:~$ some words
?
Run Code Online (Sandbox Code Playgroud)

我必须按 ENTER 才能恢复提示。

后者正常给我提示。

user@server:~$ ./test.sh
FINISHED
user@server:~$ ?
Run Code Online (Sandbox Code Playgroud)

我很好奇我在这里做错了什么。

bash prompt shell-script process-substitution

5
推荐指数
0
解决办法
60
查看次数

Bash 替换显示目录结构

我想在将变量写入文件之前转义变量中的反引号。不幸的是,其中一些行有一些令人不快的项目。

(我想避免 foo 扩展。我希望 foo="ModPagespeedLoadFromFileRuleMatch disallow .*" 从字面上理解并在其上运行替换。我不想要任何扩展。它只是一个放置在文件中的指令。)

foo="ModPagespeedLoadFromFileRuleMatch disallow .*"
echo ${foo//\\/\\\\}
Run Code Online (Sandbox Code Playgroud)

这给了我:

ModPagespeedLoadFromFileRuleMatch disallow . .. .bash_history .bashrc .cloud-locale-test.skip .filemin .gnupg .local .mysql_history .profile .rnd .rpmdb .ssh
Run Code Online (Sandbox Code Playgroud)

我也试过这样:

foo='ModPagespeedLoadFromFileRuleMatch disallow .*';
bar=$( printf "$foo" | sed 's/\\/\\\\/g' );
echo $bar

foo='ModPagespeedLoadFromFileRuleMatch disallow .*';
bar=$( echo "$foo" | sed 's/\\/\\\\/g' );
echo $bar
Run Code Online (Sandbox Code Playgroud)

同样的问题。

我在这里缺少什么?

附注。尝试这个:

foo='ModPagespeedLoadFromFileRuleMatch disallow .*' 
echo "$foo" 
Run Code Online (Sandbox Code Playgroud)

然后试试这个(我不希望在管道时发生这种情况):

foo='ModPagespeedLoadFromFileRuleMatch disallow .*' 
echo "$foo" | 
Run Code Online (Sandbox Code Playgroud)

注意第二个例子中的管道

回答:

foo="ModPagespeedLoadFromFileRuleMatch\ disallow .*"
echo "${foo//\\/\\\\}"

foo='ModPagespeedLoadFromFileRuleMatch disallow .*';
bar=$( …
Run Code Online (Sandbox Code Playgroud)

bash bash-expansion

-1
推荐指数
1
解决办法
50
查看次数