shell中for循环变量有空格的问题——IFS变量

简介: shell中for循环变量有空格的问题——IFS变量
  • 在使用shell的for循环时,如果循环的字符串中间有空格,那么循环时会自动分割,下面是解决的方法


只需要更改 shell分隔符即可
在for循环之前修改IFS变量,示例:
OLDIFS="$IFS"  #备份旧的IFS变量
IFS=$'\n'   #修改分隔符为换行符
for i in `cat aaa`  #aaa文件中存放着公钥
do
echo "$i"
done
IFS="$OLDIFS"  #还原IFS变量
  • 注释:


IFS变量的相关信息:


Shell把变量IFS内的每一个字符都当做是一个分割符(delimeter),用这些字符作为每一个字段的结束符来进行分割。


如果IFS没有设置,或者IFS的值被设置为"\t\n"(space, tab和 newline),那么操作对象的开始和结束处的所有space, tab和newline序列都将被忽略,但是操作对象中间的space, tab和newline序列会作为界定符工作。


如果IFS值不是默认值(例如程序中对IFS进行设置过),只有出现在IFS内的空白字符(可能是space, tab或newline中的一个或几个)才会在单词开始和结束处被忽略,这里说的是单词,而不是整个操作对象。


IFS内的非空白字符多个连续出现时,每个非空白字符会被当做单独的分隔符看待,但是多个连续的空白字符会被当做一个分隔符看待。


如果IFS为空(“null”),则不会进行单词分割。

目录
相关文章
|
2月前
|
存储 运维 Shell
shell中for while until 三种循环的用法
shell编程中,有几种常见的循环结构,包括for循环、while循环和until循环,总的来说,循环shell编程中扮演着至关重要的角色,它们使得自动化任务变得更加容易,提高了效率,并且可以处理各种各样的编程需求。
271 13
shell中for while until 三种循环的用法
|
2月前
|
Shell Python
python 和shell 变量互相传递
python 和shell 变量互相传递
34 0
|
15天前
|
Shell UED Python
Shell 循环语句:重复任务的自动化利器
在Shell脚本中,循环语句如`while`和`for`是自动化任务的关键。`while`循环在条件满足时执行,例如计算1到100的和;`for-in`循环遍历列表,可用于迭代指定数值或命令输出,如求1到100的和。`select-in`循环提供交互式菜单,增强脚本用户体验。理解并运用这些循环能提升脚本效率和可读性。现在,动手试试吧!
14 2
|
2月前
|
Shell Linux Perl
Linux|如何允许 awk 使用 Shell 变量
Linux|如何允许 awk 使用 Shell 变量
38 2
|
28天前
|
Shell Linux
shell循环读文件 Linux脚本读文件
shell循环读文件 Linux脚本读文件
18 3
|
13天前
|
存储 Shell 开发者
Shell 变量详解:如何定义、使用和管理
**Shell脚本中,变量是核心元素,用于暂存数据。变量默认为字符串,赋值时等号两侧无空格。命名遵循:数字、字母、下划线,以非数字开头。常用特殊变量如 `$0` (脚本名),`$#` (参数个数)。定义变量可使用单引号(不解析变量)、双引号(解析变量)或不加引号(注意空格)。使用花括号明确变量边界,`readonly` 则可设定只读变量,`unset` 删除变量。实践这些概念以加深理解。**
17 0
|
28天前
|
Shell Linux
linux shell 脚本中变量截取
linux shell 脚本中变量截取
21 0
|
28天前
|
机器学习/深度学习 Shell Linux
linux shell脚本判断文件或文件夹是否存在循环操作
linux shell脚本判断文件或文件夹是否存在循环操作
29 0
|
2月前
|
机器学习/深度学习 Shell Perl
shell 脚本循环语句
shell 脚本循环语句
|
2月前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)