Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash循环:如何执行一次,然后移动到下一个迭代_Linux_Bash - Fatal编程技术网

Linux Bash循环:如何执行一次,然后移动到下一个迭代

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替换

我从来没有一个实例需要这样做,但现在我

不幸的是,我得到的是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替换为运行所需的任何命令

答案在于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提供的路由,所以我会给他,但无论如何谢谢:)