当前位置: 技术问答>linux和unix
下面的程序段是啥意思,特别是红色部分
来源: 互联网 发布时间:2016-10-14
本文导语: Until who | grep –w “$1” Do sleep 20 Done For a in `who | grep –w “$1” | awk {‘print $2’}` Do echo “hello”>/dev/$a Done Exit 0 | 你自己敲代码也不照着人家的源代码来 你敲的那些代码全是错误的...
Until who | grep –w “$1”
Do
sleep 20
Done
For a in `who | grep –w “$1” | awk {‘print $2’}`
Do
echo “hello”>/dev/$a
Done
Exit 0
Do
sleep 20
Done
For a in `who | grep –w “$1” | awk {‘print $2’}`
Do
echo “hello”>/dev/$a
Done
Exit 0
|
你自己敲代码也不照着人家的源代码来 你敲的那些代码全是错误的!
for a in `who | grep -w "$1" | awk '{ print $2}'`
echo "hello">/dev/$a
----------------------------------------
who | grep -w "$1" 获得变量$1用户的目前登入系统的信息
who | grep -w "$1" | awk '{ print $2}' 然后从结果里提取第二域 按who的结果看 第二域是该用户登陆的TTY
for a in `who | grep -w "$1" | awk '{ print $2}'` 用变量a来循环上面得到的所有TTY
echo "hello">/dev/$a 向每个循环的TTY发送一个hello信息
tmp=`ps -ef|grep vsftp|grep -v grep |awk '{print $2}'`
为啥老是$2,不能$3吗
----------------------
这个$2表示取结果的第二域 $3就是取第三域
是根据你的需求来的 并不是随便一个数字就行
比如a b c d e f 刚才的awk句子里是$2的话 结果就是b 如果是$3的话 结果就是c 难道没区别吗。
上面那整句就是要把vsftp的进程pid提前出来 你可以把命令分步执行 就知道咋回事了
for a in `who | grep -w "$1" | awk '{ print $2}'`
echo "hello">/dev/$a
----------------------------------------
who | grep -w "$1" 获得变量$1用户的目前登入系统的信息
who | grep -w "$1" | awk '{ print $2}' 然后从结果里提取第二域 按who的结果看 第二域是该用户登陆的TTY
for a in `who | grep -w "$1" | awk '{ print $2}'` 用变量a来循环上面得到的所有TTY
echo "hello">/dev/$a 向每个循环的TTY发送一个hello信息
tmp=`ps -ef|grep vsftp|grep -v grep |awk '{print $2}'`
为啥老是$2,不能$3吗
----------------------
这个$2表示取结果的第二域 $3就是取第三域
是根据你的需求来的 并不是随便一个数字就行
比如a b c d e f 刚才的awk句子里是$2的话 结果就是b 如果是$3的话 结果就是c 难道没区别吗。
上面那整句就是要把vsftp的进程pid提前出来 你可以把命令分步执行 就知道咋回事了
|
主席说的好详细啊
|
好久不见,主席还是一如既往的shell牛人
最近写的了一个一键搭配meego开发环境的shell,发现shell写起来费脑筋
|