免费注册 查看新帖 |

Chinaunix

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

[文件目录] 菜鸟求助shell切换目录问题?谢谢! [复制链接]

论坛徽章:
3
2015亚冠之布里斯班狮吼
日期:2015-06-25 18:46:20程序设计版块每日发帖之星
日期:2015-09-17 06:20:0015-16赛季CBA联赛之江苏
日期:2017-01-09 21:37:58
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-01-04 22:32 |只看该作者 |正序浏览
本帖最后由 tengfei0311 于 2016-08-30 20:06 编辑
  1. #!/bin/sh
  2. ##
  3. export SAC_DISPLAY_COPYRIGHT=0

  4. worksta="/Users/Desktop/Noise"
  5. cd $worksta

  6. ##############################
  7. year=2014
  8. cd $year
  9.    for month in `ls $year* -d`;do
  10.    cd $month
  11.       for day in `ls $month* -d`;do
  12.       cd $day
  13. ###############################   
  14.        for file in `ls *seed`;do
  15.           rdseed -pfd $file         
  16.        mv SAC_PZs*BHN* SAC_PZs_BHN
  17.        mv SAC_PZs*BHE* SAC_PZs_BHE
  18.        mv SAC_PZs*BHZ* SAC_PZs_BHZ   
  19.        for BH in BHZ BHN BHE;do
  20.        gsac << EOF
  21.        r *$BH*SAC
  22.        merge
  23.        decimate 100
  24.        w $BH
  25.        q
  26. EOF
  27. done
  28. done
  29. cd ..
  30. done
  31. cd ..
  32. done

复制代码
运行上述脚本,一直报错找不到目录,目录确实存在,在mac终端一个个命令输入可以切换,放这个小脚本你们运行脚本就报错,提示找不到目录,如下:
  1. bash-3.2$ sh pre.sh
  2. ls: -d: No such file or directory
  3. pre.sh: line 12: cd: 201401:: No such file or directory
  4. ls: 20140105*: No such file or directory
  5. pre.sh: line 12: cd: 20140106: No such file or directory
复制代码
求大神帮看看,谢谢!!!

1.jpg (28.43 KB, 下载次数: 97)

1.jpg

论坛徽章:
3
2015亚冠之布里斯班狮吼
日期:2015-06-25 18:46:20程序设计版块每日发帖之星
日期:2015-09-17 06:20:0015-16赛季CBA联赛之江苏
日期:2017-01-09 21:37:58
14 [报告]
发表于 2016-01-05 16:49 |只看该作者
回复 13# 鱼头_火锅

呵呵 跟网站建议一下 出一个app
   

求职 : Linux运维
论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-01-06 06:20:00
13 [报告]
发表于 2016-01-05 16:43 来自手机 |只看该作者
身边没电脑啊!手机看论坛看不到代码,手机论坛客户端需要改进!

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
12 [报告]
发表于 2016-01-05 16:26 |只看该作者
回复 11# tengfei0311


try:
  1. for month in $year*;do
复制代码
自己折腾……

论坛徽章:
3
2015亚冠之布里斯班狮吼
日期:2015-06-25 18:46:20程序设计版块每日发帖之星
日期:2015-09-17 06:20:0015-16赛季CBA联赛之江苏
日期:2017-01-09 21:37:58
11 [报告]
发表于 2016-01-05 15:48 |只看该作者
回复 9# 陈卓文

不是很懂 试了一下 不行 我是shell菜鸟

   

论坛徽章:
3
2015亚冠之布里斯班狮吼
日期:2015-06-25 18:46:20程序设计版块每日发帖之星
日期:2015-09-17 06:20:0015-16赛季CBA联赛之江苏
日期:2017-01-09 21:37:58
10 [报告]
发表于 2016-01-05 15:46 |只看该作者
回复 8# 2005wind

还是有问题 不行 报错啊
   

论坛徽章:
1
技术图书徽章
日期:2016-02-03 16:35:25
9 [报告]
发表于 2016-01-05 13:13 |只看该作者
因为,一般我们跑的 shell script 是用 subshell 去执行的。
从 process 的观念来看,是 parent process 产生一个 child process 去执行, 当 child 结束后,会返回 parent ,但 parent 的环境是不会因 child 的改变而改变的。

执行脚本方式: source ./shell-script

论坛徽章:
0
8 [报告]
发表于 2016-01-05 11:08 |只看该作者
`ls -d $year* `

论坛徽章:
3
2015亚冠之布里斯班狮吼
日期:2015-06-25 18:46:20程序设计版块每日发帖之星
日期:2015-09-17 06:20:0015-16赛季CBA联赛之江苏
日期:2017-01-09 21:37:58
7 [报告]
发表于 2016-01-05 10:37 |只看该作者
本帖最后由 tengfei0311 于 2016-01-05 15:46 编辑

回复 5# jian100328823

谢谢您给我提供帮助,我按照你说的 sh -x pre.sh

报错如下:(复制了部分)
  1. wtf-MacBookPro:Noise wtf$ sh -x pre.sh
  2. + export SAC_DISPLAY_COPYRIGHT=0
  3. + SAC_DISPLAY_COPYRIGHT=0
  4. + worksta=/Users/wtf/Desktop/Noise
  5. + cd /Users/wtf/Desktop/Noise
  6. + year=2014
  7. + cd /Users/wtf/Desktop/Noise/2014
  8. ++ ls 201401 -d
  9. ls: -d: No such file or directory
  10. + for month in '`ls $year* -d`'
  11. + cd /Users/wtf/Desktop/Noise/2014/201401:
  12. pre.sh: line 12: cd: /Users/wtf/Desktop/Noise/2014/201401:: No such file or directory
  13. ++ ls '201401:*' -d
  14. ls: -d: No such file or directory
  15. ls: 201401:*: No such file or directory
  16. + cd ..
  17. + for month in '`ls $year* -d`'
复制代码

论坛徽章:
3
2015亚冠之布里斯班狮吼
日期:2015-06-25 18:46:20程序设计版块每日发帖之星
日期:2015-09-17 06:20:0015-16赛季CBA联赛之江苏
日期:2017-01-09 21:37:58
6 [报告]
发表于 2016-01-05 10:36 |只看该作者
回复 4# 鱼头_火锅

好像这样改报错跟上面一样
  1. wtf-MacBookPro:Noise wtf$ sh pre.sh
  2. ls: -d: No such file or directory
  3. pre.sh: line 12: cd: /Users/wtf/Desktop/Noise/2014/201401:: No such file or directory
  4. ls: -d: No such file or directory
  5. ls: 201401:*: No such file or directory
  6. pre.sh: line 12: cd: /Users/wtf/Desktop/Noise/2014/20140101: No such file or directory
  7. ls: -d: No such file or directory
  8. ls: 20140101*: No such file or directory
  9. pre.sh: line 12: cd: /Users/wtf/Desktop/Noise/2014/20140102: No such file or directory
  10. ls: -d: No such file or directory
  11. ls: 20140102*: No such file or directory
  12. pre.sh: line 12: cd: /Users/wtf/Desktop/Noise/2014/20140103: No such file or directory
  13. ls: -d: No such file or directory
  14. ls: 20140103*: No such file or directory
  15. pre.sh: line 12: cd: /Users/wtf/Desktop/Noise/2014/20140104: No such file or directory
  16. ls: -d: No such file or directory
  17. ls: 20140104*: No such file or directory
  18. pre.sh: line 12: cd: /Users/wtf/Desktop/Noise/2014/20140105: No such file or directory
  19. ls: -d: No such file or directory
  20. ls: 20140105*: No such file or directory
  21. pre.sh: line 12: cd: /Users/wtf/Desktop/Noise/2014/20140106: No such file or directory
复制代码
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP