QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1444|回复: 15

管道的问题

[复制链接]
发表于 2005-5-9 18:35:43 | 显示全部楼层 |阅读模式
我放音乐的目录下,只有以个文件夹--许巍
我想通过管道的方式直接进入此目录
ls -l | grep "*d" |cd
这样显示出来的是目录的详细信息。要只提取许巍,可能还要用awk和sed了
所以,我暂时用以下命令测试了下,
ls | grep "许巍“ |cd
这样,显示出来的就只有许巍了,但怎么还进不去呢?不解
照理说,许巍已经通过管道传递给了cd 了啊?
发表于 2005-5-9 19:54:14 | 显示全部楼层
这样试试:
cd `ls | grep "许巍“ `

ls | grep "许巍“ |cd
这样确实不行,具体原因我也讲不出来,等我查查看,可能与管道运行机制有关
回复

使用道具 举报

 楼主| 发表于 2005-5-9 20:07:27 | 显示全部楼层
试过了,不行,
直接把ls |grep "许巍"当目录名了,

本来我想免去输入汉字的麻烦,看来这样,还是免了,呵呵。
如果用第一种方法,还要提取文本,更麻烦,看来我还是乖乖的
cd 许巍
更方便些,
但我只有这样一个目录,这样进去确实有些不甘。
回复

使用道具 举报

发表于 2005-5-9 20:12:54 | 显示全部楼层
不会吧,我的怎么行,你看清楚了是反引号,不是单引号!
cd `ls | grep "许巍“`
回复

使用道具 举报

发表于 2005-5-10 09:16:15 | 显示全部楼层
cd 又不从 stdin 读取目标目录,管道当然不行……
回复

使用道具 举报

发表于 2005-5-11 18:32:13 | 显示全部楼层
[quote:3ccf5bcfc6="wolf0403"]cd 又不从 stdin 读取目标目录,管道当然不行……[/quote]

同意。 man cd
其中有一段:
STDIN
       Not used.

INPUT FILES
       None.
回复

使用道具 举报

发表于 2005-5-11 20:05:25 | 显示全部楼层
恩,不错
回复

使用道具 举报

 楼主| 发表于 2005-5-11 20:50:37 | 显示全部楼层
呵呵,
cd ${ls | grep "许巍“}
看来得恶补下了。不然shell编程都忘完了
谢谢,楼上的所有兄弟
回复

使用道具 举报

发表于 2005-5-12 07:37:09 | 显示全部楼层
${} 么?难道是 csh? BASH 下面应该是 $() 吧。
回复

使用道具 举报

发表于 2005-5-12 08:29:15 | 显示全部楼层
`command`
$(command)
命令替换
回复

使用道具 举报

 楼主| 发表于 2005-5-12 21:31:39 | 显示全部楼层
${command}也是可行的。我用的确实是bash
回复

使用道具 举报

发表于 2005-5-12 21:38:50 | 显示全部楼层
[quote:3bebc3fa88="overoot"]${command}也是可行的。我用的确实是bash
[/quote]这个头一次听说啊,明天试试!
回复

使用道具 举报

发表于 2005-5-13 16:52:37 | 显示全部楼层
${var} 绝对不对。${} 是用来限定变量名称范围的。

ABC=a
ABCDE=b
echo ${ABC}DE
echo $ABCDE
看看就明白了
回复

使用道具 举报

 楼主| 发表于 2005-5-13 21:12:32 | 显示全部楼层
确实是我搞错了。把${}和$()搞混了,我试了下,确实是错的。

我想再问下,如题,假如我当前路径下,只有一个目录,不通过输入目录名,有简便的方法进去码?
回复

使用道具 举报

发表于 2005-5-13 21:58:06 | 显示全部楼层
cd <TAB>
嘿嘿。最伟大的快捷键
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-7-8 13:54 , Processed in 0.042835 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表