Chinaunix

标题: 找到一个文件,并且进入它所在的目录 [打印本页]

作者: sliboy    时间: 2011-08-04 15:30
标题: 找到一个文件,并且进入它所在的目录
  1. cd `find / -name filename | sed 's/filename//g'`
复制代码
可以实现,但是我写在脚本里
  1. cd `find / -name $1 | sed 's/$1//g'`
复制代码
就会出现./xshell: line 6: cd: /etc/rc.d/rc.local: Not a directory,应该是sed的问题,但我不知出在哪了,请哪位高手给解释解释。
作者: yinyuemi    时间: 2011-08-04 15:33
回复 1# sliboy


    double quote
作者: ywlscpl    时间: 2011-08-04 15:34
sed "s/$1//g"
作者: sliboy    时间: 2011-08-04 15:41
回复 3# ywlscpl

我试过了,还是不行。
作者: xiaopan3322    时间: 2011-08-04 15:47
第一行Shebang是什么?
作者: sliboy    时间: 2011-08-04 15:48
  1. #!/bin/bash
复制代码
回复 5# xiaopan3322
作者: xiaopan3322    时间: 2011-08-04 15:52
回复  xiaopan3322
sliboy 发表于 2011-08-04 15:48



    能换思路吗?好比用dirname代替sed:
    好比
    a=`find ...`
    b=`dirname $a`
    cd $d
作者: zooyo    时间: 2011-08-04 15:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: sliboy    时间: 2011-08-04 15:59
回复 7# xiaopan3322

我也试过了,比如找inittab文件,命令行输入就可以进入到/etc目录下,但是改用脚本的话不提示出错了,但是还是那个脚本所在的目录,没有cd 到/etc
作者: xinglu1983    时间: 2011-08-04 16:01
你怎么知道脚本没进去呢?打印pwd了吗?
作者: sliboy    时间: 2011-08-04 16:15
回复 10# xinglu1983


    刚刚打印出来是/etc,但我现在所在的目录还是原来的目录,为啥呢?
作者: caoshaocong    时间: 2011-08-04 17:33
rc.local是文件不是目录 所以进不去啊
作者: xinglu1983    时间: 2011-08-04 18:15
回复  xinglu1983


    刚刚打印出来是/etc,但我现在所在的目录还是原来的目录,为啥呢?
sliboy 发表于 2011-08-04 16:15



    汗。。。那证明你的脚本没问题了,脚本是另一个进程,又不是控制你当前的终端窗口。
作者: yinyuemi    时间: 2011-08-04 23:36
回复 11# sliboy


    在你的脚步里加上set -x,并加上echo $PWD,跟踪下执行过程,
作者: sliboy    时间: 2011-08-05 09:51
知道了,thank you very much!
作者: chichushanren    时间: 2011-08-05 11:02

作者: waker    时间: 2011-08-05 11:18
"s#$1##g"
作者: billfcu    时间: 2011-08-05 22:57
那是sysbolink




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2