Error[8]: Undefined offset: 6, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

shell编程实战之执行多个目录下的php程序 去年自己参与的一个项目中,有这样的一个需求:在多个目录下都有php脚本,需要去执行这行目录下的所有php脚本。

拿个这个需求,我的考虑是,将目录作为参数传递给shell脚本而不是写死在程序中。这里需要补充个知识点:shell脚本程序的预定义变量

/path/to/scriptname  opt1  opt2  opt3  opt4 
   
shell脚本 目录名1  目录名2 ……

$0表示脚本文件名,$1表示第一个参数,依次类推。除此之外,$#表示参数的个数,$*表示所有的参数。

按照我的想法就是:

# 检查是否输入了参数
if (( $# < 1));then 
    echo 'please input some dirs'
    echo 'Usage [ ! -d $dir ]  dir1 dir2 ...'
    exit 1
fi

# 检查目录
for dir in $*
do
    if [ ! -d $dir ];then
        echo "$dir is not a dir"
        exit 2
    fi
done

想拿到所有的目录名就非常的简单了,执行使用$*即可。但是,对于程序的健壮性,我们肯定需要对目录名就校验,检查是否输入了目录名以及该目录是否存在。

# 执行目录下的php脚本
for dir in $*
do
    files=$(find $dir -name '*.php')
    for file in $files
    do
        $PHPBIN $file >/dev/null 2>&1 
    done
done

首先,我们检查用户是否输入了参数,通过预定义变量$#来判断,$#如果小于1则表示没有输入参数。然后,进行目录的检测,查看输入的参数是否是一个目录。这里用

#!/bin/bash
# 执行多个目录下的php脚本程序
PHPBIN=/usr/local/php/bin/php

if (( $# < 1));then 
    echo 'please input some dirs'
    echo 'Usage [+++] dir1 dir2 ...'
    exit 1
fi

# 检查目录
for dir in $*
do
    if [ ! -d $dir ];then
        echo "$dir is not a dir"
        exit 2
    fi
done

# 执行目录下的php脚本
for dir in $*
do
    files=$(find $dir -name '*.php')
    for file in $files
    do
        $PHPBIN $file >/dev/null 2>&1 
    done
done
来检测 。

验证性的代码完成后,接下来就是要执行目录下的php脚本了。其实主要的一点就是获取目录下的php文件名。一般的我们都以.php结尾的文件名作为php的脚本名。所以,这里我们只要执行以.php为后缀名的文件就行了。

[+++]

这里我们使用了两层循环,外循环遍历出所有目录,内层循环遍历目录下的所有php文件。

下面,贴出完整的shell脚本

[+++]

最后,我们来总结下该脚本用到了哪些知识:

以上就是shell编程实战之执行多个目录下的php程序的详细内容,)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)

Error[8]: Undefined offset: 7, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

shell编程实战之执行多个目录下的php程序 去年自己参与的一个项目中,有这样的一个需求:在多个目录下都有php脚本,需要去执行这行目录下的所有php脚本。

拿个这个需求,我的考虑是,将目录作为参数传递给shell脚本而不是写死在程序中。这里需要补充个知识点:shell脚本程序的预定义变量

/path/to/scriptname  opt1  opt2  opt3  opt4 
   
shell脚本 目录名1  目录名2 ……

$0表示脚本文件名,$1表示第一个参数,依次类推。除此之外,$#表示参数的个数,$*表示所有的参数。

按照我的想法就是:

# 检查是否输入了参数
if (( $# < 1));then 
    echo 'please input some dirs'
    echo 'Usage [ ! -d $dir ]  dir1 dir2 ...'
    exit 1
fi

# 检查目录
for dir in $*
do
    if [ ! -d $dir ];then
        echo "$dir is not a dir"
        exit 2
    fi
done

想拿到所有的目录名就非常的简单了,执行使用$*即可。但是,对于程序的健壮性,我们肯定需要对目录名就校验,检查是否输入了目录名以及该目录是否存在。

# 执行目录下的php脚本
for dir in $*
do
    files=$(find $dir -name '*.php')
    for file in $files
    do
        $PHPBIN $file >/dev/null 2>&1 
    done
done

首先,我们检查用户是否输入了参数,通过预定义变量$#来判断,$#如果小于1则表示没有输入参数。然后,进行目录的检测,查看输入的参数是否是一个目录。这里用

#!/bin/bash
# 执行多个目录下的php脚本程序
PHPBIN=/usr/local/php/bin/php

if (( $# < 1));then 
    echo 'please input some dirs'
    echo 'Usage  dir1 dir2 ...'
    exit 1
fi

# 检查目录
for dir in $*
do
    if [ ! -d $dir ];then
        echo "$dir is not a dir"
        exit 2
    fi
done

# 执行目录下的php脚本
for dir in $*
do
    files=$(find $dir -name '*.php')
    for file in $files
    do
        $PHPBIN $file >/dev/null 2>&1 
    done
done
来检测 。

验证性的代码完成后,接下来就是要执行目录下的php脚本了。其实主要的一点就是获取目录下的php文件名。一般的我们都以.php结尾的文件名作为php的脚本名。所以,这里我们只要执行以.php为后缀名的文件就行了。

[+++]

这里我们使用了两层循环,外循环遍历出所有目录,内层循环遍历目录下的所有php文件。

下面,贴出完整的shell脚本

[+++]

最后,我们来总结下该脚本用到了哪些知识:

以上就是shell编程实战之执行多个目录下的php程序的详细内容,)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)

Error[8]: Undefined offset: 8, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

shell编程实战之执行多个目录下的php程序 去年自己参与的一个项目中,有这样的一个需求:在多个目录下都有php脚本,需要去执行这行目录下的所有php脚本。

拿个这个需求,我的考虑是,将目录作为参数传递给shell脚本而不是写死在程序中。这里需要补充个知识点:shell脚本程序的预定义变量

/path/to/scriptname  opt1  opt2  opt3  opt4 
   
shell脚本 目录名1  目录名2 ……

$0表示脚本文件名,$1表示第一个参数,依次类推。除此之外,$#表示参数的个数,$*表示所有的参数。

按照我的想法就是:

# 检查是否输入了参数
if (( $# < 1));then 
    echo 'please input some dirs'
    echo 'Usage [ ! -d $dir ]  dir1 dir2 ...'
    exit 1
fi

# 检查目录
for dir in $*
do
    if [ ! -d $dir ];then
        echo "$dir is not a dir"
        exit 2
    fi
done

想拿到所有的目录名就非常的简单了,执行使用$*即可。但是,对于程序的健壮性,我们肯定需要对目录名就校验,检查是否输入了目录名以及该目录是否存在。

# 执行目录下的php脚本
for dir in $*
do
    files=$(find $dir -name '*.php')
    for file in $files
    do
        $PHPBIN $file >/dev/null 2>&1 
    done
done

首先,我们检查用户是否输入了参数,通过预定义变量$#来判断,$#如果小于1则表示没有输入参数。然后,进行目录的检测,查看输入的参数是否是一个目录。这里用

#!/bin/bash
# 执行多个目录下的php脚本程序
PHPBIN=/usr/local/php/bin/php

if (( $# < 1));then 
    echo 'please input some dirs'
    echo 'Usage  dir1 dir2 ...'
    exit 1
fi

# 检查目录
for dir in $*
do
    if [ ! -d $dir ];then
        echo "$dir is not a dir"
        exit 2
    fi
done

# 执行目录下的php脚本
for dir in $*
do
    files=$(find $dir -name '*.php')
    for file in $files
    do
        $PHPBIN $file >/dev/null 2>&1 
    done
done
来检测 。

验证性的代码完成后,接下来就是要执行目录下的php脚本了。其实主要的一点就是获取目录下的php文件名。一般的我们都以.php结尾的文件名作为php的脚本名。所以,这里我们只要执行以.php为后缀名的文件就行了。

这里我们使用了两层循环,外循环遍历出所有目录,内层循环遍历目录下的所有php文件。

下面,贴出完整的shell脚本

[+++]

最后,我们来总结下该脚本用到了哪些知识:

以上就是shell编程实战之执行多个目录下的php程序的详细内容,)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)

shell编程实战之执行多个目录下的php程序_系统运维_内存溢出

shell编程实战之执行多个目录下的php程序

shell编程实战之执行多个目录下的php程序,第1张

shell编程实战之执行多个目录下的php程序 去年自己参与的一个项目中,有这样的一个需求:在多个目录下都有php脚本,需要去执行这行目录下的所有php脚本。

拿个这个需求,我的考虑是,将目录作为参数传递给shell脚本而不是写死在程序中。这里需要补充个知识点:shell脚本程序的预定义变量

/path/to/scriptname  opt1  opt2  opt3  opt4 
   
shell脚本 目录名1  目录名2 ……

$0表示脚本文件名,$1表示第一个参数,依次类推。除此之外,$#表示参数的个数,$*表示所有的参数。

按照我的想法就是:

# 检查是否输入了参数
if (( $# < 1));then 
    echo 'please input some dirs'
    echo 'Usage [ ! -d $dir ]  dir1 dir2 ...'
    exit 1
fi

# 检查目录
for dir in $*
do
    if [ ! -d $dir ];then
        echo "$dir is not a dir"
        exit 2
    fi
done

想拿到所有的目录名就非常的简单了,执行使用$*即可。但是,对于程序的健壮性,我们肯定需要对目录名就校验,检查是否输入了目录名以及该目录是否存在。

# 执行目录下的php脚本
for dir in $*
do
    files=$(find $dir -name '*.php')
    for file in $files
    do
        $PHPBIN $file >/dev/null 2>&1 
    done
done

首先,我们检查用户是否输入了参数,通过预定义变量$#来判断,$#如果小于1则表示没有输入参数。然后,进行目录的检测,查看输入的参数是否是一个目录。这里用

#!/bin/bash
# 执行多个目录下的php脚本程序
PHPBIN=/usr/local/php/bin/php

if (( $# < 1));then 
    echo 'please input some dirs'
    echo 'Usage  dir1 dir2 ...'
    exit 1
fi

# 检查目录
for dir in $*
do
    if [ ! -d $dir ];then
        echo "$dir is not a dir"
        exit 2
    fi
done

# 执行目录下的php脚本
for dir in $*
do
    files=$(find $dir -name '*.php')
    for file in $files
    do
        $PHPBIN $file >/dev/null 2>&1 
    done
done
来检测 。

验证性的代码完成后,接下来就是要执行目录下的php脚本了。其实主要的一点就是获取目录下的php文件名。一般的我们都以.php结尾的文件名作为php的脚本名。所以,这里我们只要执行以.php为后缀名的文件就行了。

这里我们使用了两层循环,外循环遍历出所有目录,内层循环遍历目录下的所有php文件。

下面,贴出完整的shell脚本

最后,我们来总结下该脚本用到了哪些知识:

  • 条件判断以及循环执行

  • [ -d 文件名 ]来检测该文件是否为一个目录

  • find命令来查找目录下以.php为后缀的文件

  • shell编程的预定义变量

以上就是shell编程实战之执行多个目录下的php程序的详细内容,

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

原文地址: https://www.outofmemory.cn/yw/713132.html

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

发表评论

登录后才能评论

评论列表(0条)

保存