小编hel*_*s35的帖子

使用ps检查正在运行的脚本数

我正在编写一个脚本(show_volume.sh),可以在短时间内多次调用.我需要一种方法来确定是否只有一个运行此脚本的实例.我想我可以使用ps,所以我在Bash中编写了这个函数:

is_only_process(){
    PCOUNT=`ps -a | grep show_volume.sh | wc -l`
    echo $PCOUNT
    if (( PCOUNT==1 )); then
        return 1 
    fi  
    return 0
}
Run Code Online (Sandbox Code Playgroud)

所以我添加了这两行

is_only_process
sleep 4
Run Code Online (Sandbox Code Playgroud)

并启动了这个脚本一次,但输出echo $PCOUNT对我没有任何意义.我总是按预期得到值2而不是1.当我运行此命令

ps -a | grep show_volume.sh | wc -l

在脚本运行时从另一个终端,我收到值1.当我连续多次运行此脚本时,几乎相同,例如使用for循环运行10次.当我在使用另一个终端时收到正确的值时,脚本本身会确定太高的值.

现在,为什么这个脚本会确定这些奇怪的值?

bash sh ps

2
推荐指数
1
解决办法
3413
查看次数

使用WWW :: Mechanize获取HTML导致"禁止"

我想通过使用WWW :: Mechanize来获取imdb电影的内容.首先,我必须找到一种方法来找到相应的/ title/tt*url.当我有一个叫做斗争俱乐部的电影时,我想访问这个链接:*ttp://www.imdb.com/find?s = all&q = fight + club由于某种原因,这已经失败了.下面是导致错误的行

$mech->get('http://www.imdb.com/find?s=all&q=fight+club');
Run Code Online (Sandbox Code Playgroud)

错误信息:

错误获取 http://www.imdb.com/find?s=all&q=fight+club:禁止

如果我写了像get(http://www.google.com)这样的东西,它就可以了.使用imdb有什么区别?任何替代解决方案的建议?

perl get www-mechanize

0
推荐指数
1
解决办法
1131
查看次数

标签 统计

bash ×1

get ×1

perl ×1

ps ×1

sh ×1

www-mechanize ×1