gpt4 book ai didi

何时使用括号之间的 Linux 区别

转载 作者:太空宇宙 更新时间:2023-11-04 12:55:52 27 4
gpt4 key购买 nike

为什么在运行 2) 时会出现额外的空行?对我来说 1 就像 2。那么为什么 2) 中的额外行?

1)

export p1=$(cd $(dirname $0) && pwd)
# ^
echo p1

2)

export p2=$(cd $(dirname $0)) && pwd
# ^
echo p2

最佳答案

$echo $0
/bin/bash
$ echo $(cd $(dirname $0) && pwd)
/bin
$ echo $(cd $(dirname $0)) && pwd

/home/user
$

在第一个表达式中,它变为 echo $(cd/bin && pwd)。因此,内部 2 个命令在子 shell 中执行并返回 pwd 值,然后回显该值。

在第二个表达式中,它被缩减为 echo $(cd/bin) && pwd。因此只有 cd 命令在子 shell 中执行并且不返回任何内容给 echo(因此默认情况下 echo 只打印一个空行)。由于 echo 成功运行(退出代码=0)&& 结果为 true 并且 pwd cmd 在当前 shell 中运行并且 pwd 被打印

关于何时使用括号之间的 Linux 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35764323/

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