忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
楼主: minzyyl

[文件目录] 请问怎么实现linux下根据文件结构的一个跳转程序? [复制链接]

论坛徽章:
0
发表于 2018-05-25 12:32 |显示全部楼层
1cpuer 发表于 2018-05-25 09:36
回复 8# minzyyl

find /qs/project/*/*/*/ -maxdepth 1 -type d | awk -F'/' 'BEGIN{print "NO\tName"} ...


你好,能提供完整的吗?我是新手哈

还有一个小问题,假如project/cds下面有个带user名字的文件,程序也会抓出来,这个不要,只要抓x3下面的user名字输出就可以。
/qs/project/x1/x2/x3/userA/project/cds/.userAxxx

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
发表于 2018-05-25 13:56 |显示全部楼层
回复 11# minzyyl

.cshrc 可运行吗
写不了

论坛徽章:
0
发表于 2018-05-25 15:31 |显示全部楼层
1cpuer 发表于 2018-05-25 13:56
回复 11# minzyyl

.cshrc 可运行吗

.cshrc是一个环境变量定义文件,权限755,可以source啊

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
发表于 2018-05-25 18:56 |显示全部楼层
回复 13# minzyyl

在 /usr/bin/sw 脚本中可运行 .cshrc 不
原本是这个意思
可行的话,不和原贴意了么 ?

论坛徽章:
0
发表于 2018-05-25 22:49 |显示全部楼层
1cpuer 发表于 2018-05-25 09:36
回复 8# minzyyl

find /qs/project/*/*/*/ -maxdepth 1 -type d | awk -F'/' 'BEGIN{print "NO\tName"} ...

这一条if的条件怎么写啊?

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
发表于 2018-05-26 08:17 |显示全部楼层
回复 15# minzyyl

  • cat /usr/bin/sw
  • #!/bin/bash
  • user="$(whoami)"
  • if [[ $1 == "" ]];then
  •         find /qs/project/*/*/*/ -maxdepth 1 -type d | awk -F'/' 'BEGIN{print "NO\tName"}$7~/'$user'/{print ++n"\t"$6FS$7}'
  • elif [[ $1 == "-u" && $2 != "" ]];then
  •         find /qs/project/*/*/*/ -maxdepth 1 -type d | awk -F'/' 'BEGIN{print "NO\tName"}$7~/'$2'/{print ++n"\t"$6FS$7}'
  • else
  •         echo "command error!"
  •         exit 1
  • fi


if -a elif -a else -a fi

if and fi 是开关闭合 elif 是又if else 是那么  #--

不加 if 加 elif | else


论坛徽章:
0
发表于 2018-05-27 22:42 |显示全部楼层

恩,这个if 和fi明白了,但是这个程序一直忘记了我的要求的第2条,就是sw module/$user的时候,直接进入那个路径并source文件,你能把第二条的条件怎么写加进来吗?if里面执行的语句你已经写好了。
也就是11楼我说你们都漏掉第2个条件啦,郁闷

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
发表于 2018-05-28 08:53 |显示全部楼层
本帖最后由 1cpuer 于 2018-05-28 09:02 编辑

# [ /home/soio/1bs/awks ] {2018-05-28 08:48:51}
: 1527468531:0;➜  find /home/soio/*/*/*/ -maxdepth 4 -type d | grep userA        
/home/soio/1bs/awks/dir-1/module/proj/auserA_3
/home/soio/1bs/awks/dir-1/module/userA_1
/home/soio/1bs/awks/dir-1/module/userA_1/project
/home/soio/1bs/awks/dir-1/module/userA_1/project/cds
/home/soio/1bs/awks/dir-1/module/userA_1/proj
/home/soio/1bs/awks/dir-1/module/userA
/home/soio/1bs/awks/dir-1/module/userA/project
/home/soio/1bs/awks/dir-1/module/userA/project/cds
/home/soio/1bs/awks/dir-1/module/userA/proj

# [ /home/soio/1bs/awks ] {2018-05-28 08:52:01}
: 1527468721:0;➜  echo "echo \"abcd-123 \"" > /home/soio/1bs/awks/dir-1/module/userA/project/cds/.cshell@2


# [ /home/soio/1bs/awks ] {2018-05-28 08:52:53}
: 1527468773:0;➜  cat /home/soio/1bs/awks/dir-1/module/userA/project/cds/.cshell@2      
echo "abcd-123 "


# [ /home/soio/1bs/awks ] {2018-05-28 08:58:22}
: 1527469102:0;➜  find /home/soio/*/*/*/ -maxdepth 2 -type d | grep userA
/home/soio/1bs/awks/dir-1/module/userA_1
/home/soio/1bs/awks/dir-1/module/userA


# [ /home/soio/1bs/awks ] {2018-05-28 08:58:30}
: 1527469110:0;➜  find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>'
/home/soio/1bs/awks/dir-1/module/userA


# [ /home/soio/1bs/awks ] {2018-05-28 09:00:16}
: 1527469216:0;➜  cd ($find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>')
zsh: bad pattern: ( /home/soio/*/*/*/ -maxdepth 2 -type d | grep \<userA\>)


# [ /home/soio/1bs/awks ] {2018-05-28 09:00:36}
: 1527469236:0;➜  cd $(find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>')


# [ /home/soio/1bs/awks/dir-1/module/userA ] {2018-05-28 09:00:45}
: 1527469245:0;➜  cd `find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>'`


# [ /home/soio/1bs/awks/dir-1/module/userA ] {2018-05-28 09:01:00}
: 1527469260:0;➜  cd ../../                                                         


# [ /home/soio/1bs/awks/dir-1 ] {2018-05-28 09:01:12}
: 1527469272:0;➜  cd `find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>'`


# [ /home/soio/1bs/awks/dir-1/module/userA ] {2018-05-28 09:01:13}
: 1527469273:0;➜  

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
发表于 2018-05-28 10:48 |显示全部楼层
本帖最后由 1cpuer 于 2018-05-28 10:54 编辑

回复 18# 1cpuer

# [ /home/soio/1bs/awks ] {2018-05-28 10:32:02}
: 1527474722:0;➜  find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>'
/home/soio/1bs/awks/dir-1/module/userA


# [ /home/soio/1bs/awks ] {2018-05-28 10:33:00}
: 1527474780:0;➜  find /home/soio/1bs/awks/ -name userA
/home/soio/1bs/awks/dir-1/module/userA


# [ /home/soio/1bs/awks ] {2018-05-28 10:33:18}
: 1527474798:0;➜  find /home/soio/1bs/awks/ -name userA -exec cd {} \;
find: `cd': 没有那个文件或目录


# [ /home/soio/1bs/awks ] {2018-05-28 10:33:38}
: 1527474818:0;➜  find /home/soio/1bs/awks/ -name userA | xargs cd   
xargs: cd: 没有那个文件或目录


# [ /home/soio/1bs/awks ] {2018-05-28 10:33:56}
: 1527474836:0;➜  find /home/soio/1bs/awks/ -name userA | xargs cd {} \;
xargs: cd: 没有那个文件或目录


# [ /home/soio/1bs/awks ] {2018-05-28 10:47:20}
: 1527475640:0;➜  cat f10.sh
#!/bin/bash

user="$(whoami)"
x1="module/userA"
if [[ $1 == "$x1" ]];then

#        echo "f10-01"
        x2=$(find /home/soio/1bs/awks/ -name userA) && echo $x2       
#        find /qs/project/*/*/*/ -maxdepth 1 -type d | awk -F'/' 'BEGIN{print "NO\tName"}$7~/'$user'/{print ++n"\t"$6FS$7}'

elif [[ $1 == "-u" && $2 != "" ]];then

        echo "f10-02"
#        find /qs/project/*/*/*/ -maxdepth 1 -type d | awk -F'/' 'BEGIN{print "NO\tName"}$7~/'$2'/{print ++n"\t"$6FS$7}'

else

        echo "command error!"
        exit 1

fi


# [ /home/soio/1bs/awks ] {2018-05-28 10:53:39}
: 1527476019:0;➜  ./f10.sh module/userA
/home/soio/1bs/awks/dir-1/module/userA


论坛徽章:
0
发表于 2018-05-28 21:23 |显示全部楼层
1cpuer 发表于 2018-05-28 10:48
回复 18# 1cpuer

# [ /home/soio/1bs/awks ] {2018-05-28 10:32:02}

还不行,你这个要已知module/userA才能运行有效,要看看能不能实现程序自动搜索后把这些数据保存,然后如果sw module/userA的时候,程序再直接cd进去这个目录。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP