流程替换是否需要用双引号引起来?

提姆

双引号命令替换是一种好习惯。流程替换(<()>()是否相同

似乎双引号允许命令替换,但不允许进程替换:

$ echo <(printf "%s" hello)
/dev/fd/63
$ echo "<(printf "%s" hello)"
<(printf %s hello)

如果任何进程替换的结果都包含空格,或者该空格永远不会发生,该怎么办?

谢谢。

迈克尔·荷马

琐碎测试表明,报价流程替代将抑制它:

$ echo <(echo 123)
/dev/fd/63
$ cat <(echo 123)
123
$ echo "<(echo 123)"
<(echo 123)
$ cat "<(echo 123)"
cat: '<(echo 123)': No such file or directory

对我来说,您在提出问题之前没有尝试过这样做是很奇怪的,但是现在至少可以很容易地验证它是行不通的。

这与引用其他shell运算符时发生的情况没有什么不同。echo "("出于相同的原因不是语法错误,也不echo "> /dev/sda"会给您带来任何问题。

记录的行为是:

作为扩展的结果,该文件名作为参数传递给当前命令

作为一个单独的论据,是否存在空格并不重要,并且单词拆分并不重要,也不会执行。在某些平台上,在生成的路径中出现空白是合理的,但这不会产生任何影响。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

不要用双引号引起来

exec用双引号引起来

用双引号引起来

Shell:如何仅在文件中用双引号引起来的字符中替换字符?

用单选项卡替换空格,除非用双引号引起来

文本是否用双引号引起来时,转义文本中的特殊字符

根据属性的值是否用双引号引起来选择

用双引号引起来时忽略逗号

在Hibernate中将列名称用双引号引起来

每个单词都用双引号引起来

硒-查找仅用双引号引起来的文本

php:字符串被双引号引起来,而不是单引号引起来。怎么修?

如何使用正则表达式替换用双引号引起来的字符串?

VBScript Regex当数字用引号引起来时替换

用引号引起来的命令替换与反斜杠转义

',(用引号引起来)

ShellCheck正在检查我的表达式实际上是否用双引号引起来;为什么?

如果已经使用了单引号和双引号,该如何用引号引起来?

JSON密钥是否必须用引号引起来?

Gatsby GraphQL是否需要用括号括起来?

逗号分隔列表中的匹配项,不被单引号或双引号引起来

基本HTML / JavaScript混淆在Bootstrap弹出窗口中用单引号/双引号引起来

从字符串中删除所有未用单引号或双引号引起来的空格

请给RegEx帮助-用引号引起来的字符串中包含双引号

用单引号而不是双引号引起来的C ++中的转义序列

在IntelliJ的代码编辑器中,将选定的文本用双引号引起来

如果仅非空字段用双引号引起来,我如何读取CSV文件?

ASP.NET Core API发送用双引号引起来的字符串

将目录用双引号引起来时,grep无法正常工作