gpt4 book ai didi

linux - shell 引用行为

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:01:11 25 4
gpt4 key购买 nike

我刚刚了解到,在某些情况下引用会产生巨大的差异,我做了一些测试,这是我刚刚做的,

$ xfs=$(find . -type f -perm -111)  #find all files with x-perm
$ echo "$xfs"
./b.out
./a.out
$ echo $xfs
./b.out ./a.out #why all in one line, but the above takes two?

如果 $xfs 包含 \n,据我所知,echo -e 将扩展 \n,但是如何echo "$xfs" 可以分两行吗?

最佳答案

任何空格通常在 shell 中被视为参数分隔符。因此,您的第一个示例有两个参数。 echo 打印由一个空格分隔的参数,这就是您在第二个示例中看到的行为。

但是,当您使用引号时,它们之间的任何内容都是一个参数,并且按字面意思打印。第一个示例中的 one 参数已经包含一个换行符,因此它用换行符打印。

bash echo 内置的 -e 选项控制转义序列的扩展,如 \n;但是,您没有任何转义序列。该变量包含文字换行符。

关于linux - shell 引用行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9426991/

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