LinuxSir.cn,穿越时空的Linuxsir!

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

求助: if [ -x "$filename" ]; then

[复制链接]
发表于 2007-4-23 12:12:40 | 显示全部楼层 |阅读模式
#!/bin/bash
     if [ -x "$filename" ]; then     
                                       
     echo "File $filename exists."; cp $filename $filename.bak
else
     echo "File $filename not found."; touch $filename
fi; echo "File test complete."
    其中的 if [ -x "$filename" ]; then     有这样的语法吗?特别是-x参数什么意思,我模仿着弄了个例子:
#!/bin/bash
if [ -x "$wang" ];then
  echo "File $wang  exists.";cp $wang $wang.bak
else
  echo "File $wang not found.";touch $wang
fi;echo "File test  complete."
其中wang这个文件是存在的,没能够正确执行。显示如下:
File  not found.
touch: 缺少了文件操作数
请尝试执行“touch --help”来获取更多信息。
File test  complete.
把touch $wang 改成touch wang 执行结果如下:
File  not found.
File test  complete.
明明wang这个文件存在呀,我怀疑if [ -x "$wang" ];then是不是有问题,恭请高手指点一下我这个菜鸟,谢谢!
发表于 2007-4-23 13:24:42 | 显示全部楼层
晕,x是可执行,应该用e或f
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-23 16:00:32 | 显示全部楼层
谢谢 wawxdyy  朋友  不过 换成e或f也不能执行  e或f是什么意思那?请指教 谢谢
回复 支持 反对

使用道具 举报

发表于 2007-4-24 09:02:19 | 显示全部楼层
请问你给变量wang赋的什么值?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-24 09:53:13 | 显示全部楼层
呵呵 承蒙关注 其实这是ABS_Guide_cn.pdf版 第三章特殊字符“;”中的一个小例子原文如下:
if [ -x "$filename" ]; then     # 注意:"if"和"then"需要
                                      # 为啥?
    echo "File $filename exists."; cp $filename $filena
else
    echo "File $filename not found."; touch $filename
fi; echo "File test complete."
我是比照这段建了wang这样一个内容为几个字母的文本文件 。现在我想了想原文中的$filename应该不是一个变量,应该是一个文件名,不知道作者文什么这样用?
回复 支持 反对

使用道具 举报

发表于 2007-4-24 17:20:57 | 显示全部楼层
你要搞清楚$wang不代表wang,这是一个变量。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-26 09:42:22 | 显示全部楼层
谢谢 Iambitious朋友的提醒
回复 支持 反对

使用道具 举报

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

本版积分规则

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