一个判断命令是否带参的问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
sellength
帖子: 24
注册时间: 2010-11-20 20:01

一个判断命令是否带参的问题

#1

帖子 sellength » 2011-11-03 11:03

if [ $# -lt 1] 这个完全无效
然后做了个实验敲入了一条带参命令 locate /tmp/ 再echo $#结果永远是0~~~~@@不带参 不知道为什么 求助
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 一个判断命令是否带参的问题

#2

帖子 eexpress » 2011-11-03 11:09

$#是当前进程内的。2条命令可不继承。
[]的判断,2边都要空格的。
● 鸣学
sellength
帖子: 24
注册时间: 2010-11-20 20:01

Re: 一个判断命令是否带参的问题

#3

帖子 sellength » 2011-11-03 11:17

eexpress 空格打过了 那应该如何显示出 当前命令带几个参数呢?
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 一个判断命令是否带参的问题

#4

帖子 枫叶饭团 » 2011-11-03 11:20

要叫神。我运行了你的命令,居然退不出来了
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 一个判断命令是否带参的问题

#5

帖子 eexpress » 2011-11-03 11:22

2011-11-03 11:27:49 四 ~
● bash t.bash e 1 3
3
2011-11-03 11:28:07 四 ~
● cat t.bash
#!/bin/bash

echo $#
● 鸣学
sellength
帖子: 24
注册时间: 2010-11-20 20:01

Re: 一个判断命令是否带参的问题

#6

帖子 sellength » 2011-11-03 11:49

echo $# 你这里输出是多少?我这里永远是0@@
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: 一个判断命令是否带参的问题

#7

帖子 fnan » 2011-11-04 21:19

#无图无真相。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
头像
naturalaw
帖子: 1360
注册时间: 2011-09-06 22:04

Re: 一个判断命令是否带参的问题

#8

帖子 naturalaw » 2011-11-05 10:03

sellength 写了:echo $# 你这里输出是多少?我这里永远是0@@
你的脚本参数本来就是0嘛。不然怎么会输出0.

代码: 全选

#!/bin/bash
echo -e "$1 $#"
./foo.sh 9
9 1
  • The eternal law
回复