#!/bin/sh
whois()
{
if [ $# -lt 1 ]
then
echo "need user id please"
return 1
fi
for loop
do
user_name=`grep $loop /etc/passwd | awk -F: '{print $4}'`
if [ "$user_name" = "" ]
then
echo "not find $loop"
else
echo "$loop is $user_name"
fi
done
}
我想用这个,但是不知道怎么用
sh funcion4 prodction
然后什么都没有,。不知道为什么是这样的,应该怎么样才可以执行,还有就是不知道这个$loop表示什么意思,表示所有的输入名字吗?不太明白,为什么是这样的
sorry,看错了..
QUOTE:原帖由 MYSQLER 于 2008-6-13 16:19 发表

后面没有跟参数..
sh funcion4 prodction
这个就是参数
函数直接输入函数名就可以调用
source function4
或
. function4
sh function4的话会在子shell中执行,该子shell结束后就没效果了。
QUOTE:原帖由 woodie 于 2008-6-13 16:26 发表

source function4
或
. function4
sh function4的话会在子shell中执行,该子shell结束后就没效果了。
source function4
没有结果
. function4
没有结果
source function4 production
没有结果
. function4 production
没有结果
cat /etc/passwd | grep production
production:x:505:505::/home/production:/bin/bash
没有结果?
之后你在当前shell下调用函数了没有?
1. grep 和 $loop 中有个空格
2. 运行 . function4
3. 运行 whois root 或者其他用户名 whois sys root mail 等
whois root
root is 1
whois sys root mail
sys is 3
root is 1
not find mail
当然,实际上有bug
QUOTE:原帖由 rollingpig 于 2008-6-13 16:49 发表

1. grep 和 $loop 中有个空格
2. 运行 . function4
3. 运行 whois root 或者其他用户名 whois sys root mail 等
whois root
root is 1
whois sys root mail
sys is 3
root is 1
not find mail
...
不要意思这个grep 和 $loop中间是有一个空格,但是贴的时候不小心贴错了,我不太明白这个 $loop 表示一个什么东西,表示我输入的那一个变量字符串吗?
会员注册
会员登录
个人空间