sh/bash/dash/ksh/zsh等Shell脚本
-
潇洒走一回
- 帖子: 735
- 注册时间: 2009-05-20 21:43
#1
帖子
由 潇洒走一回 » 2009-10-03 21:58
请先看我的操作:
<一>
代码: 全选
cd ~
ls > tmp/'test(ls)'
生成的文件test(ls)内容如下:
bin
date
Desktop
documents
Downloads
examples.desktop
exercise
glade-2.12.2
keep-learning
music
newcomer
Notes
photos
programs
projects
python-scripts
shell-scripts
tmp
公共的
视频
图片
文档
音乐
<二>
代码: 全选
cd ~
echo $(ls) > tmp/'test($)' # $(ls)写成`ls`效果相同
生成的文件test($)内容如下:
bin date Desktop documents Downloads examples.desktop exercise glade-2.12.2 keep-learning music newcomer Notes photos programs projects python-scripts shell-scripts tmp 公共的 视频 图片 文档 音乐
看出区别了吗?
为什么把ls命令的输出结果经过$()或``代换后本来是多行内容却变成了一行内容呢?
希望有人解释以下,谢谢!!!
-
潇洒走一回
- 帖子: 735
- 注册时间: 2009-05-20 21:43
#2
帖子
由 潇洒走一回 » 2009-10-03 22:05
这样做有什么用意吗?
-
darkfish
- 帖子: 90
- 注册时间: 2009-09-18 10:03
- 来自: 北京
-
联系:
#4
帖子
由 darkfish » 2009-10-03 22:47
同样的
如果
代码: 全选
x='a b c d'
echo $x #是a b c d
echo "$x" #是a b c d
任何一本有关shell编程的书都有这个解释
-
潇洒走一回
- 帖子: 735
- 注册时间: 2009-05-20 21:43
#6
帖子
由 潇洒走一回 » 2009-10-03 23:25
你们看看我这样理解对不对?
其实$var这种形式也是一种代换语法, 它代换出一个变量的内容, 并把这个内容作为其它命令的一部分(或参数),所以:
代码: 全选
当a='a b c'时
使用$a实际相当于在命令中插入了a b c这一串东东:
echo $a 实际等于 echo a b c,就是echo依次作用在这三个字符上
echo "$a" 实际等价于 echo "a b c",就是echo直接作用于"a b c"这个字符串上
上次由
潇洒走一回 在 2009-10-03 23:29,总共编辑 1 次。
-
Jarson
- 帖子: 2371
- 注册时间: 2008-07-21 9:44
- 来自: 深圳
-
联系:
#7
帖子
由 Jarson » 2009-10-03 23:28
呵呵,在shell中变量的引用(引号括住)与变量的替换(没有引号括住)还是有些许区别的。
俺也正在学习shell中
-
Jarson
- 帖子: 2371
- 注册时间: 2008-07-21 9:44
- 来自: 深圳
-
联系:
#8
帖子
由 Jarson » 2009-10-03 23:29
潇洒走一回 写了:你们看看我这样理解对不对?
其实$var这种形式也是一种代换语法, 它代换出一个变量的内容, 并把这个内容作为其它命令的一部分(或参数),所以:
当a='a b c'时
使用$a实际相当于在命令中插入了a b c这一串东东:
echo $a 实际等于 echo a b c,就是echo依次作用在这三个字符上
echo "$a" 实际等价于 echo "a b c",就是echo直接作用于"a b c"这个字符串上
大概也就是这意思了
-
潇洒走一回
- 帖子: 735
- 注册时间: 2009-05-20 21:43
#9
帖子
由 潇洒走一回 » 2009-10-03 23:38
为了验证我的猜测,我刚刚做了一个奇妙的试验:
shell下输入:
代码: 全选
PART=' -sh'
ls$PART #相当于ls -sh,注意PART变量以一个空格开始.
输出:
总用量 21K
0 bin 512 exercise 0 photos 0 公共的
0 date 1.0K glade-2.12.2 0 programs 0 视频
0 Desktop 1.0K keep-learning 0 projects 0 图片
0 documents 0 music 512 python-scripts 0 文档
0 Downloads 0 newcomer 0 shell-scripts 14K 音乐
4.0K examples.desktop 0 Notes 0 tmp