LinuxSir.cn,穿越时空的Linuxsir!

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

输出小问题

[复制链接]
发表于 2009-11-14 11:07:11 | 显示全部楼层 |阅读模式
#! /bin/bash
#
a=$1

if [ "`ls -A $a`" != ""  ]

then
        echo "No,`basename $0`"
else
        echo "Yes,`basename $0`"
fi

问题1:如果该目录不存在,它直接屏幕输出ls: testtest: No such file or directory,能不能把这段,别让它屏幕输出出来,直接输出到/dev/null可以吗?

问题21具体意思我不太明确,像$2$3$4$5$6$7和$#,代表什么意思我真搞不懂。

就两个小问题,刚学SHELL希望大家讲解谢谢
发表于 2009-11-14 12:31:03 | 显示全部楼层
$? 就是 命令后的参数,例如,$1 第一个参数, $2第二个,以此类推S#则是全部参数.
-----------------------------------------------------------------------------------------
你可以把ls命令那句改改,改为 ls -A $a 2>/dev/null , 这里需要说明的是,在shell里面0表示 标准输入, 1表示标准输出,2表示错误, 这句话就是说的,把ls -A $a 的结果错误 重定向到/dev/null
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-15 11:38:03 | 显示全部楼层
Post by firefoxmmx;2045724
$? 就是 命令后的参数,例如,$1 第一个参数, $2第二个,以此类推S#则是全部参数.
-----------------------------------------------------------------------------------------
你可以把ls命令那句改改,改为 ls -A $a 2>/dev/null , 这里需要说明的是,在shell里面0表示 标准输入, 1表示标准输出,2表示错误, 这句话就是说的,把ls -A $a 的结果错误 重定向到/dev/null


谢谢你兄弟,全部明白了
回复 支持 反对

使用道具 举报

发表于 2009-11-16 22:47:01 | 显示全部楼层
不用 ls 直接就没有输出了:
  1. #/bin/bash
  2. test -d $1 && echo Yes, `basename $0` || echo No, `basename $0`
复制代码
  1. root [ ~ ]0# ./test /tmp
  2. Yes, test
  3. root [ ~ ]0# ./test skfjsklagds
  4. No, test
  5. root [ ~ ]0#
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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