linux while中使用read的问题

linux while中使用read的问题,第1张

1、while使用重定向机制,ip.txt文件中的信息都已经读入并重定向给了整个while语句。所以当我们在while循环中再一次调用read语句,就会读取到下一条记录。问题就出在这里,ssh语句正好回读取输入中的所有东西。为了禁止ssh读所有东西增加一个<

/dev/null,将ssh

的输入重定向输入

while

read

ips

do

echo

$ips

upt=`ssh

root@${ip1}

uptime

<

/dev/null`

echo

$upt

done

<

ip.txt

2、用for

for

ips

in

`cat

ip.txt`

do

echo

${ips}

upt=`ssh

root@${ips}

uptime`

echo

$upt

done

#!/bin/bash

echo "Enter password:"

read TRY

COUNTER=1

while [ "$COUNTER" -lt 5 -a "$TRY" != "secret" ]do

echo "Here we go again"

COUNTER=$(($COUNTER+1))

read TRY

done

[ "$TRY" != "secret" ] &&echo "error!"

这个就是 UNIX/Linux 系统下面的强大的 SHELL 编程中涉及到的技术了。我由于好久没有编写过 SHELL 程序了,但是我记得 %% 应该是起到参数替换功能的。其他的符号还有,例如:$$(进程号)、$#(传递给脚本参数的个数)等等。关于详细的 SHELL 编程,这个就必须要仔细阅读 SHELL 编程相关的技术文档了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7165414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存