请问 bash脚本 局部全局变量问题
发表于 : 2012-08-05 22:50
#!/bin/bash
2 # changing the IFS value
3
4 IFS_OLD=$IFS
5 IFS=$'\n'
6 for entry in `cat /etc/passwd`
7 do
8 echo "Values in $entry -"
9 IFS=:
10 for value in $entry
11 do
12 echo " $value"
13 done
14 done
15 IFS=$IFS_OLD
***********************************************
运行结果
Values in root
0:0:root:/root:/bin/bash -
2 root
3 x
4 0
5 0
6 root
7 /root
8 /bin/bash
...
...
Values in timidity
116:127:TiMidity++ MIDI sequencer service:/etc/timidity :/bin/false -
306 timidity
307 x
308 116
309 127
310 TiMidity++ MIDI sequencer service
311 /etc/timidity
312 /bin/false
*****************************************************************************************************************
这个脚本是修改了IFS 先按照行读取 /etc/passwd 然后在此行中 按照: 依次显示
脚本中
第五行 IFS赋值为\n
for内部 第九行 IFS赋值为:
只要在循环体外 IFS为\n 循环体内IFS为:
for循环内外得 两个IFS为两个变量 一个是 for的局部变量 一个是全局变量 是这样得吗?
谢谢
2 # changing the IFS value
3
4 IFS_OLD=$IFS
5 IFS=$'\n'
6 for entry in `cat /etc/passwd`
7 do
8 echo "Values in $entry -"
9 IFS=:
10 for value in $entry
11 do
12 echo " $value"
13 done
14 done
15 IFS=$IFS_OLD
***********************************************
运行结果
Values in root
2 root
3 x
4 0
5 0
6 root
7 /root
8 /bin/bash
...
...
Values in timidity
306 timidity
307 x
308 116
309 127
310 TiMidity++ MIDI sequencer service
311 /etc/timidity
312 /bin/false
*****************************************************************************************************************
这个脚本是修改了IFS 先按照行读取 /etc/passwd 然后在此行中 按照: 依次显示
脚本中
第五行 IFS赋值为\n
for内部 第九行 IFS赋值为:
只要在循环体外 IFS为\n 循环体内IFS为:
for循环内外得 两个IFS为两个变量 一个是 for的局部变量 一个是全局变量 是这样得吗?
谢谢