LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: leonchang

花了一上午才发现的小毛病--注意``和''别混淆了

[复制链接]
 楼主| 发表于 2008-1-9 14:29:07 | 显示全部楼层
谢谢ocean396!
再一次感谢所有shell前辈的帮助!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-9 15:02:47 | 显示全部楼层
...还有个小问题:
我将前辈们提供的方法在终端运行没有问题,可写到脚本里怎么会报错?我是这样写的:
-------------------
#!/bin/bash
DIR=`pwd`
name=${DIR##*/}
AB=(${name/-/})
A=${a[0]}
B=${a[1]}
-------------------------
报错:./test: line 30: ${DIR ##*/}: bad substitution
啥原因哦?

在终端运行正常:
leon@LSGI:~/test/20070216-20060630> DIR=`pwd`
leon@LSGI:~/test/20070216-20060630> name=${DIR##*/}
leon@LSGI:~/test/20070216-20060630> AB=(${name/-/})
leon@LSGI:~/test/20070216-20060630> A=${AB[0]}
leon@LSGI:~/test/20070216-20060630> B=${AB[1]}
leon@LSGI:~/test/20070216-20060630> echo $name $A $B
20070216-20060630 20070216   20060630
回复 支持 反对

使用道具 举报

发表于 2008-1-9 15:32:26 | 显示全部楼层
AB=(${name/-/(这里有一个空格!)})
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-11 19:25:50 | 显示全部楼层
还是不行阿~
执行如下脚本的时候,总会在终端报错
#!/bin/bash
DIR=`pwd`
name=${DIR##*/}
AB=(${name/-/})
A=${a[0]}
B=${a[1]}
-------------------------
报错:./test: line 30: ${DIR ##*/}: bad substitution
//即使加空格了也不成。
啥子原因哩?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-11 19:59:56 | 显示全部楼层
哦,抱歉,已解决了,谢谢各位前辈
问题在于脚本里我敲name=${DIR##*/}的时候在DIR和##之间多了个空格。删去就没有报错了。。。。
回复 支持 反对

使用道具 举报

发表于 2008-1-12 21:24:59 | 显示全部楼层
[root@stu3 245-124]# var=$(basename $PWD)
[root@stu3 245-124]# arry=(${var/-/ })
[root@stu3 245-124]# A=${arry[0]}
[root@stu3 245-124]# B=${arry[1]}
[root@stu3 245-124]# echo $A
245
[root@stu3 245-124]# echo $B
124
[root@stu3 245-124]#
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-13 14:25:14 | 显示全部楼层
非常感谢seker!
回复 支持 反对

使用道具 举报

发表于 2008-1-13 20:52:11 | 显示全部楼层
7L
的字体不错   是什么字体啊  在Terminal中 显示完美么
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-14 21:13:05 | 显示全部楼层
7L="七楼"?
是opensuse自带的字体,也不知道是啥字体:)我直接截的图
回复 支持 反对

使用道具 举报

发表于 2008-2-3 12:46:13 | 显示全部楼层
没事,分不清就用$()
回复 支持 反对

使用道具 举报

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

本版积分规则

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