相关疑难解决方法(0)

了解 IFS

本站点和 StackOverflow 上的以下几个线程有助于理解IFS工作原理:

但我还有一些简短的问题。我决定在同一篇文章中问他们,因为我认为这可能有助于更好的未来读者:

一季度。 IFS通常在“字段拆分”的上下文中讨论。是场分裂一样的分词

Q2: POSIX 规范

如果IFS 的值为空,则不进行字段拆分。

设置IFS=是否与设置IFS为空相同?这也是将其设置为 an 的意思empty string吗?

Q3:在 POSIX 规范中,我阅读了以下内容:

如果没有设置 IFS,shell 的行为就像 IFS 的值是 <space>, <tab> and <newline>

假设我想恢复IFS. 我怎么做?(更具体地说,我如何引用<tab><newline>?)

Q4:最后,这段代码如何:

while IFS= read -r line
do    
    echo $line
done < /path_to_text_file
Run Code Online (Sandbox Code Playgroud)

如果我们将第一行更改为

while read -r line # Use …
Run Code Online (Sandbox Code Playgroud)

shell

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

如何遍历文件的行?

说我有这个文件:

hello
world
hello world
Run Code Online (Sandbox Code Playgroud)

这个程序

#!/bin/bash

for i in $(cat $1); do
    echo "tester: $i"
done
Run Code Online (Sandbox Code Playgroud)

产出

tester: hello
tester: world
tester: hello
tester: world
Run Code Online (Sandbox Code Playgroud)

我希望for对每一行进行迭代,分别忽略空格,即最后两行应替换为

tester: hello world
Run Code Online (Sandbox Code Playgroud)

使用引号for i in "$(cat $1)";会立即i分配整个文件。我应该改变什么?

shell control-flow

71
推荐指数
3
解决办法
27万
查看次数

标签 统计

shell ×2

control-flow ×1