LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1333|回复: 3

一个新手关于shell script不能运行的问题,在线等候? 

[复制链接]
发表于 2002-10-17 19:29:56 | 显示全部楼层 |阅读模式
我手头有一个比较长的脚本,它在redhat 7.1下能正常运行,但在redhat 7.3以及redhat 8.0下却无法运行。输入命令后显示,set:Variable name must begin with a letter
脚本的第一句为:#!/bin/csh -f
其中还有类似 set $0等语句。
因此我向问的是同一个脚本再不版本的redhat下却不能运行csh不同造成的吗?如果是的话,我该怎么办?
如果不是,那时什么原因呢?
还往高说指点,不胜感激!
发表于 2002-10-17 23:15:44 | 显示全部楼层
好象需要参数!建议把脚本贴出来。
 楼主| 发表于 2002-10-19 20:33:25 | 显示全部楼层
现在问题原因已弄明白,这个脚本有一句是从/etc/passwd中寻找匹配字符,语句如下:
grep $user /etc/passwd|awk -F: '{print $NF}'`
在redhat7.1下可以得到/bin/bash.
但在redhat7.3及8.0中/etc/passwd多了包含root字符的一句,因此结果的道的是/bin/bash /sbin/nologin从而导致整个脚本不能运行。
因此,我想问两个问题:
1./etc/passwd中多加关于"operator"一句是什么用意?
2.有什么办法修改这句程序,是得到的结果仍为/bin/bash(不修改/etc/passwd文件!)还望赐教,谢谢!
 楼主| 发表于 2002-10-20 21:47:36 | 显示全部楼层
:cool: 已找到那条指令:grep -m 1 $user /etc/passwd|awk -F: '{print $NF}'`
加了-m 1这个选项后,编只输出第一句,从而可得到//bin/bash.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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