gpt4 book ai didi

bash - set IFS as $'\n' 和 $'\n' 的区别

转载 作者:行者123 更新时间:2023-11-29 09:50:44 28 4
gpt4 key购买 nike

#!/bin/bash

show="ls -al /"
IFS=$'\n'
$show

结果类似于 bash: ls -al/: No such file or directory

shell 无法返回预期的结果。

如果我将 IFS 更改为 $'\n'(注意我添加了一个空格),就可以了。

我对 IFS 了解不多,有人可以解释一下吗?

最佳答案

第一种情况:

show="ls -al /"
IFS=$'\n'
$show

整个字符串 ls -al/ 被 shell 视为命令名称,因为 IFS 中没有空格并且变量中的空格不会导致单词拆分。这与将命令写成“$show”一样好,它完全抑制了分词。

在第二种情况下,确实会发生分词,因为空格是 IFS 的一部分。


另见:

关于bash - set IFS as $'\n' 和 $'\n' 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46901317/

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