在shell中使用到for循環時,是通過IFS同樣也是來定義分隔符。如果要指定多個IFS字符,只要將他們在賦值行串起來就行。如下:
IFS=$'\n':;"
1
這個賦值會將換行符、冒號、分號和雙引號作為字段分隔符。如何使用 IFS 字符解析數據沒有任何限制。
那么下面三個的區別是什么呢?
IFS='\n' //將字符\和字符n作為IFS的換行符。
IFS='\n' //與上面一樣。
IFS=$'\n' //正真的使用換行符做為字段分隔符。
//如果IFS='\n':;"
//這個賦值會將反斜杠、n、冒號、分號和雙引號作為字段分隔符。
1
2
3
4
5
6
測試如下:
(文件log.txt)
hello \world
this is n.jack
are you n or y
1
2
3
(測試用shell1)
#!/bin/bash
str=`cat log.txt`
IFS=$'\n'
for word in $str; do
echo $word
done
/**
輸出:
hello \world
this is n.jack
are you n or y
**/
1
2
3
4
5
6
7
8
9
10
11
12
13
(測試用shell2)
#!/bin/bash
str=`cat log.txt`
IFS='\n'
for word in $str; do
echo $word
done
/**
輸出:
hello
world
this is
.jack
are you
or y
**/
---------------------
作者:一個行走的民
來源:CSDN
原文:https://blog.csdn.net/zhaominpro/article/details/79207383
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
