+ -
当前位置:首页 → 问答吧 → 分隔符IFS的问题

分隔符IFS的问题

时间:2011-04-11

来源:互联网

我有如下的代码
#cat test.sh
  1. #!/bin/bash

  2. IFS=":"
  3. aa=#aa:bb:cc
  4. if expr $aa : '^[#]' > /dev/null
  5. then
  6.     echo "yes"
  7. else
  8.     echo "no:"
  9. fi
复制代码
将分隔符设置为:后,
#./test.sh
expr: syntax error
no:

如果不设置分隔符IFS,则正确输出

#cat test.sh
  1. #!/bin/bash

  2. aa=#aa:bb:cc
  3. if expr $aa : '^[#]' > /dev/null
  4. then
  5.     echo "yes"
  6. else
  7.     echo "no:"
  8. fi
复制代码
#./test.sh
yes

由于expr命令中也使用到了":",有哪位知道这是为什么

作者: whpu000625   发布时间: 2011-04-11

回复 whpu000625

try:
  1. #!/bin/bash



  2. IFS=":"

  3. aa=#aa:bb:cc  # or: aa="#aa:bb:cc"

  4. if expr "$aa" : '^[#]' > /dev/null

  5. then

  6.     echo "yes"

  7. else

  8.     echo "no:"

  9. fi
复制代码

作者: yinyuemi   发布时间: 2011-04-11