小编run*_*gnu的帖子

Bash中$()和()之间的区别

当我ls -l $(echo file)从括号输入输出(这只是简单的回声)时,将其传递给外部ls -l命令.它等于简单ls -l file.

当我键入时,ls -l (echo file)我们有错误,因为无法嵌套()在外部命令中.

有人可以帮助我理解之间的差异$()()

unix linux bash subshell

11
推荐指数
3
解决办法
4968
查看次数

为什么echo"$ out"将输出拆分为多行,如果引号抑制字拆分?

我有一个非常简单的目录,其中包含"directory1"和"file2".后

out=`ls`
Run Code Online (Sandbox Code Playgroud)

我想打印我的变量:echo $out给:

directory1   file2
Run Code Online (Sandbox Code Playgroud)

echo "$out"给出:

directory1
file2
Run Code Online (Sandbox Code Playgroud)

所以使用引号给出了每个记录在单独行上的输出.正如我们所知,ls命令打印输出使用单行表示所有文件/目录(如果行足够大以包含输出),所以我希望使用双引号可以防止我的shell将单词拆分为单独的行,而省略引号则会拆分它们.请告诉我:为什么使用引号(用于防止分词)突然分裂输出?

bash quoting

0
推荐指数
1
解决办法
366
查看次数

标签 统计

bash ×2

linux ×1

quoting ×1

subshell ×1

unix ×1