139得票7回答
IFS=$'\n'的确切含义是什么?

如果按照下面的示例,将IFS环境变量设置为换行符...IFS=$'\n' 美元符号到底代表什么? 在这种情况下它有什么作用? 在哪里可以阅读更多关于这个用法的信息(谷歌不允许搜索特殊字符,而我也不知道该搜些什么)? 我知道 IFS 环境变量的含义以及 \n 字符的含义(换行符),但为什么...

67得票1回答
在这个Bash循环中,IFS=的作用是什么:`cat file | while IFS= read -r line; do ... done`?

我正在学习Bash,看到了以下语法结构:cat file | while IFS= read -r line; do ... done 有人能解释一下IFS=是什么意思吗?我知道它是输入字段分隔符,但为什么要将其设置为空?

14得票2回答
尝试将一个字符串分割为两个变量

我想将一个字符串分成两个变量(而不必使用while循环):var="hello:world" IFS=':' read var1 var2 <<< $var echo "var1: $var1" echo "var2: $var2" 但我没有得到期望的结果:var1: 'h...

12得票1回答
IFS=: 在循环遍历冒号分隔值时会导致不同的行为。

实验 1 这是我在名为foo.sh的文件中的第一个脚本。IFS=: for i in foo:bar:baz do echo $i done 这会产生以下输出。$ bash foo.sh foo bar baz 实验2 这是我的第二个脚本。IFS=: for i in foo:ba...

12得票3回答
令人惊讶的数组扩展行为

在以下示例中,我对标记为(!!)的行感到惊讶:log1 () { echo $@; } log2 () { echo "$@"; } X=(a b) IFS='|' echo ${X[@]} # prints a b echo "${X[@]}" # prints a b echo $...

8得票2回答
使用逗号和单引号连接数组元素 - Bash

如何在Bash中将带单引号和逗号的数组元素转换。 arr=("element1" "element2" "element3") #element1 element2 element3 期望的结果 '元素1','元素2','元素3' 从Martin Clayton的回答中可以看到,使用I...

8得票3回答
在命令行中将IFS设置为空字节不会正确分割行。

~ ls A B C 在bash中(看起来不对) ~IFS=$'\x00' read -a vars < <(find -type f -print0); echo "${vars}" ABC 在zsh(看起来不错) ~IFS=$'\x00' read -A vars ...

8得票3回答
如何在每个命令的基础上正确分配临时Bash变量?

在临时、每个命令变量赋值方面,Bash表现得似乎是不可预测的,特别是与IFS相关。 我经常将IFS分配到一个临时值中,与read命令结合使用。我希望使用相同的机制来定制输出,但目前只能使用函数或子shell来包含变量赋值。 $ while IFS=, read -a A; do > ...

8得票1回答
使用非空格字符设置IFS时,在Bash中进行单词分割

我正在学习一个关于Bash的教程, 主要学习单词分割的内容。 这个叫做"args"的脚本,有助于演示单词分割的例子: #!/usr/bin/env bash printf "%d args:" $# printf " <%s>" "$@" echo 一个例子: $ ./a...

7得票3回答
在Bash中,如何逐个字符从字符串中读取文本,包括空格?

我很无聊,决定用bash编写一个基于文本的冒险游戏脚本。基本上,它应该在某些情况下模拟打字机以进行戏剧性的叙述。我可以在文件中手动完成这个过程,就像这样: sleep 0.1 echo -n "h" sleep 0.1 echo -n "e" sleep 0.1 echo -n "l"...