Linux Bash循环:如何执行一次,然后移动到下一个迭代
我从来没有一个实例需要这样做,但现在我 不幸的是,我得到的是netstat-nr(几乎6000条单独的静态路由)的输出 我需要获取该文件,并最终将每一行转换为一个新的“ip路由添加”命令 这是我的失败代码(底部的回声用于测试->一旦成功,我想用它们代替ip路由添加):Linux Bash循环:如何执行一次,然后移动到下一个迭代,linux,bash,Linux,Bash,我从来没有一个实例需要这样做,但现在我 不幸的是,我得到的是netstat-nr(几乎6000条单独的静态路由)的输出 我需要获取该文件,并最终将每一行转换为一个新的“ip路由添加”命令 这是我的失败代码(底部的回声用于测试->一旦成功,我想用它们代替ip路由添加): num=`cat$logfile | wc-l` echo$num 回声“” 对于((i=0;i答案在于AWK: awk '{print "echo",$1,$2,$3}' $logfile | sh -x 现在,将echo替换
num=`cat$logfile | wc-l`
echo$num
回声“”
对于((i=0;i答案在于AWK:
awk '{print "echo",$1,$2,$3}' $logfile | sh -x
现在,将echo替换为运行所需的任何命令答案在于AWK:
awk '{print "echo",$1,$2,$3}' $logfile | sh -x
现在,用运行循环所需的任何命令替换echo。您的awk命令每次都会处理整个文件,它们都完成了
如果需要变量中的值,请使用以下内容替换几乎所有脚本:
#!/bin/bash
while read -r dst gw mask _
do
echo "$dst $gw $mask" # substitute your command here
done < "$logfile"
!/bin/bash
读时-r dst gw掩码_
做
echo“$dst$gw$mask”#在此处替换您的命令
完成<“$logfile”
您的循环是由内而外的。您的awk命令每次都会处理整个文件,它们都完成了
如果需要变量中的值,请使用以下内容替换几乎所有脚本:
#!/bin/bash
while read -r dst gw mask _
do
echo "$dst $gw $mask" # substitute your command here
done < "$logfile"
!/bin/bash
读时-r dst gw掩码_
做
echo“$dst$gw$mask”#在此处替换您的命令
完成<“$logfile”
无需在echo
后加空格,逗号免费提供。您可能需要在{
为了避免为头行添加路由,头行显然是日志文件的第一行。不需要在echo
之后留空格,逗号会免费为您提供。您可能希望在{
避免为标题行添加路由,标题行显然是您日志文件的第一行。谢谢Dennis-我已经使用anttix提供的路由,所以我会给他,但无论如何谢谢:)谢谢Dennis-我已经使用anttix提供的路由,所以我会给他,但无论如何谢谢:)