免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3273 | 回复: 17
打印 上一主题 下一主题

循环脚本问题 [复制链接]

论坛徽章:
1
狮子座
日期:2013-09-02 12:10:41
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-30 11:59 |只看该作者 |倒序浏览
#!/bin/sh
cd /dev/dsk
for device in ‘ls emcpower*a | /usr/bin/sed -e ’s/a/
/’‘
do
echo "making links for /dev/dsk/${device}"
ln ${device}a ${device}s0
ln ${device}b ${device}s1
ln ${device}c ${device}s2
ln ${device}d ${device}s3
ln ${device}e ${device}s4
ln ${device}f ${device}s5
ln ${device}g ${device}s6
ln ${device}h ${device}s7
done
cd /dev/rdsk
for device in ‘ls emcpower*a | /usr/bin/sed -e ’s/a/
/’‘
do
echo "making links for /dev/rdsk/${device}"
ln ${device}a ${device}s0
ln ${device}b ${device}s1
ln ${device}c ${device}s2
ln ${device}d ${device}s3
ln ${device}e ${device}s4
ln ${device}f ${device}s5
ln ${device}g ${device}s6
ln ${device}h ${device}s7
done

以上的脚本是从emc的powerpath文档中拷贝出来,但是不能使用,执行的结果应该就是把/dev/dsk和/dev/rdsk目录下的emcpower*的设备7个分区a,b,c,d,e,f,g链接为emcpower*s0,s1,s2,s3,s4,s5,s6,s7
谁能帮我修改一下,谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-07-30 12:05 |只看该作者
确定用硬链接,不是软链接

for device in ‘ls emcpower*a | /usr/bin/sed -e ’s/a/
/’‘   #怎么是两行?

论坛徽章:
0
3 [报告]
发表于 2008-07-30 15:38 |只看该作者
/usr/bin/sed -e ’s/a/
/’
这句你要作什么?还是使用半角单引号,另外,不要两个地方都使用单引号,否则in的部分就成了ls emcpower*a | /usr/bin/sed -e了。

论坛徽章:
1
狮子座
日期:2013-09-02 12:10:41
4 [报告]
发表于 2008-07-30 22:20 |只看该作者
这段shell不是我写的,是emc powerpath的标准文档pdf中拷贝出来的,我就是没看懂for device in ‘ls emcpower*a | /usr/bin/sed -e ’s/a/
/’‘   #这句实际是干什么的,而且就是这句报错,不能执行。所以想让大家帮忙,改一下。能建这些链接。
在/dev/dsk,/dev/rdsk/下有emcpower0a,emcpower0b,emcpower0c,emcpower0d,emcpower0e,emcpower0f,emcpower0g,emcpower0h...................emcpower120a,emcpower120b,emcpower120c,emcpower120d,emcpower120e,emcpower120f,emcpower120g,emcpower120h,即编号是0-120共121个lun。a,b,c,d,e,f,g,h分别对应s0,s1,s2,s3,s4,s5,s6,s7分区,手工建立这些链接。

论坛徽章:
0
5 [报告]
发表于 2008-07-30 22:27 |只看该作者

  1. for device in ‘ls emcpower*a | /usr/bin/sed -e ’s/a/
  2. /’‘
复制代码

改为:

  1. for device in $(ls emcpower*a|/usr/bin/sed -e 's/a//')
复制代码

试试

  1. ln--->ln -s
复制代码

论坛徽章:
0
6 [报告]
发表于 2008-07-30 22:29 |只看该作者
找到emcpower*a的文件,然后去掉这些文件中字符a,再依次赋值给device ?

论坛徽章:
0
7 [报告]
发表于 2008-07-30 22:33 |只看该作者
如果

  1. 找到emcpower*a的文件,然后去掉这些文件中字符a,再依次赋值给device ?
复制代码

应用

  1. sed 's/a$//'
复制代码

论坛徽章:
0
8 [报告]
发表于 2008-07-30 22:40 |只看该作者
有很多半角,一一替换再试试

论坛徽章:
0
9 [报告]
发表于 2008-07-30 22:54 |只看该作者
原帖由 爱知 于 2008-7-30 22:33 发表
如果

找到emcpower*a的文件,然后去掉这些文件中字符a,再依次赋值给device ?

应用

sed 's/a$//'



作为设备来说,emcpower*a
应该比较有规律,可能只有最后一个字符是a

论坛徽章:
0
10 [报告]
发表于 2008-07-30 23:15 |只看该作者

回复 #9 welcome008 的帖子

不太清楚/dev/dsk和/dev/rdsk目录下的emcpower*的设备
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP