LinuxSir.cn,穿越时空的Linuxsir!

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

有人会用SHELL编程吗?

[复制链接]
发表于 2002-5-31 08:47:32 | 显示全部楼层 |阅读模式
总是SHELL好玩,我今天试了一下,还真不好用呀。帮我看看这个叫"temp.sh的文件吧:
#! /bin/bash
#make a dirctory in root!
user1=bill
user2="richard stevens"
msg1="$user2 doesn't like $user1"
msg2="'user1' means 10\$"
echo $msg1
echo $msg2
就这么个破玩意,我用./temp.sh运行时,却显示:bash: ./temp.sh: /bin/bash: bad interpreter: Permission denied
什么意思呀?兄弟哪个知道呀?
发表于 2002-6-1 23:24:43 | 显示全部楼层
兄弟,是权限不够呀。。。。
你用root用户执行这个脚本试试
发表于 2002-6-2 12:50:43 | 显示全部楼层
chmod 711 temp.sh 试下
发表于 2002-6-2 15:42:38 | 显示全部楼层
在root拥护模式下,

运行bash shell_name。

___________________

allen
 楼主| 发表于 2002-6-3 15:54:57 | 显示全部楼层

谢谢!

谢谢大伙,我试试先。
发表于 2002-11-27 22:57:16 | 显示全部楼层
你编写之后的文件为普通文件,需要在其属性上加上可执行性,方能要bash下执行。

兄弟你原来的script有点不妥:
#! /bin/bash
#make a dirctory in root!    ##下面的script好象没有这个功能吧。
user1=bill
user2="richard stevens"
msg1="$user2 doesn't like $user1"
msg2="'user1' means 10\$"    ##user1前似乎少个$
echo $msg1
echo $msg2
我按你的意思,写了下面这个:

  1. #! /bin/bash
  2. # This a simple example of shell script
  3. user1="Bill Gate"
  4. user2="Richard Stevens"
  5. msg1="$user2 doesn't like $user1"
  6. msg2="'$user1' means 10\$"
  7. echo $msg1
  8. echo $msg2
复制代码

我原以为执行的结果会是:
Richard Stevens doesn't like Bill Gate
$user1 means 10$
但执行的结果却是:
Richard Stevens doesn't like Bill Gate
'Bill Gate' means 10$


我不知道结果为什么会是这样。
谁可以说解释一下为什么,谢了。
发表于 2002-11-27 23:33:00 | 显示全部楼层

我原以为执行的结果会是:
Richard Stevens doesn't like Bill Gate
$user1 means 10$
但执行的结果却是:
Richard Stevens doesn't like Bill Gate
'Bill Gate' means 10$


我不知道结果为什么会是这样。
谁可以说解释一下为什么,谢了。


那是因为单引号被括在双引号里面,所以shell将单引号当成字符处理。要防止$user1被替换,只需要把双引号的位置移到$user1的后面就行了。即从msg2="'$user1' means 10\$"变为msg2='$user1'" means 10\$"。
发表于 2002-11-28 23:14:17 | 显示全部楼层
谢谢。不过我还有一点不清楚:
那是因为单引号被括在双引号里面,所以shell将单引号当成字符处理。
>>“单引号当成字符处理”!!对,按执行出一的结果应该是这样的。不过,我不明白双引号属于弱引用呀,为什么里面的单引号会被当字符处理呢?如果里面的单引号被当做字符处理,那为什么“\"不也当字符处理呢?谢谢。

要防止$user1被替换,只需要把双引号的位置移到$user1的后面就行了。即从msg2="'$user1' means 10\$"变为msg2='$user1'" means 10\$"。
>>这个完全同意。
发表于 2002-11-29 10:32:29 | 显示全部楼层
我也不太明白,从执行的结果来看,只能认为双引号内的一切字符,包括单引号在内,都被当作字符处理,除了“\“和“$"有特殊意义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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