[问题]一个命令行参数替换的问题。。

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
iblicf
帖子: 3766
注册时间: 2007-01-15 17:15

[问题]一个命令行参数替换的问题。。

#1

帖子 iblicf » 2007-06-21 18:20

有个文件(a ),,只有一行,是个目录名字,比如mp3 ,,

代码: 全选

weiyh@MyPC:~$ cat a
mp3
怎么在命令行实现类似
weiyh@MyPC:~$ cd < 'cat a'
进入mp3 这个目录,?
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#2

帖子 BigSnake.NET » 2007-06-21 19:00

cd "$(<a)"
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
iblicf
帖子: 3766
注册时间: 2007-01-15 17:15

#3

帖子 iblicf » 2007-06-21 19:06

well done ! 肯定还有别的方法。。。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#4

帖子 BigSnake.NET » 2007-06-21 19:12

cd "`<a`"
cd "`cat a`"
和等价的
cd "$(cat a)"
上次由 BigSnake.NET 在 2007-06-21 19:24,总共编辑 1 次。
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
iblicf
帖子: 3766
注册时间: 2007-01-15 17:15

#5

帖子 iblicf » 2007-06-21 19:17

cd "`cat a`" 不行,只能引用? 能不能管道实现,“|”or "-"
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#6

帖子 BigSnake.NET » 2007-06-21 19:22

iblicf 写了:cd "`cat a`" 不行,只能引用? 能不能管道实现,“|”or "-"
试过了..可以的
不能
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
millenniumdark
论坛版主
帖子: 4159
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
联系:

#7

帖子 millenniumdark » 2007-06-21 19:40

奇怪的。
echo "mp3" | cd
也不行。

cd好特别哦。
头像
millenniumdark
论坛版主
帖子: 4159
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
联系:

#8

帖子 millenniumdark » 2007-06-21 19:47

BigSnake.NET 写了:cd "`<a`"
cd "`cat a`"
和等价的
cd "$(cat a)"
强的。cat出来的是text,但是"<file"的输出也不是string吗?
头像
iblicf
帖子: 3766
注册时间: 2007-01-15 17:15

#9

帖子 iblicf » 2007-06-21 19:49

管道似乎讲不通,,应为是stdin/stdout :) cd `cat a` 是可以的,我当初试验的时候就是敲错了,
“ ’” 我也纳闷呢,
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#10

帖子 BigSnake.NET » 2007-06-21 20:14

1.cd是内置命令
2.cd 接收的是命令行参数,不是stdin
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#11

帖子 BigSnake.NET » 2007-06-21 20:15

millenniumdark 写了:
BigSnake.NET 写了:cd "`<a`"
cd "`cat a`"
和等价的
cd "$(cat a)"
强的。cat出来的是text,但是"<file"的输出也不是string吗?
cd "`<a`" 跟 cd "`cat a`" 是完全等价的,不过前者高效一些
双引号是防止空格用的
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
回复