免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1936 | 回复: 3
打印 上一主题 下一主题

[文本处理] 郁闷好几天了,为什么变量会莫名其妙的被改变了? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-02 17:44 |只看该作者 |倒序浏览
-----------------------------------------------------------
#!/bin/bash

rsync_files()
{
  binSrc=$1
  binDest=$2
}


binSrc="test"
binDest_tmp="uuuu"
binDest="nnnnnnnnn"

echo 1 binSrc=$binSrc, binDest=$binDest

rsync_files  "$binSrc/"   "$binDest_tmp"
echo 2 binSrc=$binSrc, binDest=$binDest

rsync_files  "$binSrc/mblog/config"   "$binDest_tmp"
echo 3 binSrc=$binSrc, binDest=$binDest
-----------------------------------------------------------

以上这段代码, binDest为什么莫名其妙被改动了呢?
binSrc为啥被莫名其妙添加了后缀了?

=============================================
1 binSrc=test, binDest=nnnnnnnnn
2 binSrc=test/, binDest=uuuu
3 binSrc=test//mblog/config, binDest=uuuu
=============================================



论坛徽章:
771
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-07-02 17:51 |只看该作者
本帖最后由 Herowinter 于 2014-07-02 17:51 编辑

回复 1# linlone
你调用了rsync_files()这个函数里会把这两个变量的值
改成传进去的实参,如果不想有改动,改成这样既可。
  1. #!/bin/bash

  2. rsync_files()
  3. {
  4.   local binSrc=$1
  5.   local binDest=$2
  6. }


  7. binSrc="test"
  8. binDest_tmp="uuuu"
  9. binDest="nnnnnnnnn"

  10. echo 1 binSrc=$binSrc, binDest=$binDest

  11. rsync_files  "$binSrc/"   "$binDest_tmp"
  12. echo 2 binSrc=$binSrc, binDest=$binDest

  13. rsync_files  "$binSrc/mblog/config"   "$binDest_tmp"
  14. echo 3 binSrc=$binSrc, binDest=$binDest
复制代码

论坛徽章:
0
3 [报告]
发表于 2014-07-02 17:59 |只看该作者
回复 2# Herowinter


    是不是说,shell中父函数中的变量在子函数中是可见的?

论坛徽章:
771
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
4 [报告]
发表于 2014-07-02 18:44 |只看该作者
回复 3# linlone

不加local是全局变量。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP