Cygwin .sh文件如何在Windows任务计划程序中运行

5

在Windows任务计划程序中运行此shell脚本遇到问题。

#!/bin/bash
# Script to ping the VPN server for testing

RESULT=$(ping 192.168.1.252 | grep "Lost" | awk {' print $10 '})
LOG=/home/admin/results.txt

if [ "$RESULT" -gt 0 ];then

    echo "VPN 192.168.1.252 NOT pinging" >> $LOG
else

echo "VPN Online"

fi

当我在Cygwin中运行它时,没有任何问题,但是当我尝试从命令提示符中运行它时,我会得到以下错误信息:
C:\cygwin64\bin>bash test.sh test.sh: 第4行:grep: 找不到命令
test.sh: 第4行:awk: 找不到命令
test.sh: 第7行:[: : 需要整数表达式
我的问题是,如何使用bash来运行它,以便它实际上知道grep和awk命令?
在Windows计划程序中,我有操作:启动一个程序 详细信息:C:\cygwin64\bin\bash.exe 参数:test.sh 开始于:C:\cygwin64\bin
我是否漏掉了什么?
3个回答

10

我弄清楚了。

在Windows任务计划程序中,我必须传递:

程序/脚本:C:\cygwin64\bin\bash.exe

添加参数:-c -l test.sh

起始位置:C:\cygwin64\bin


嗨,也许你可以帮我解决一个类似的问题,我在这里遇到了这个问题 - HattrickNZ
更具体地说,我如何在任务计划程序中添加参数? 我在运行时使用以下内容:C:\ cygwin \ bin \ bash.exe -l / cygdrive / c / path / where / the / file / is / filename.sh,并且我设置了开始位置为:C:\ cygwin \ bin - HattrickNZ

0

针对Jimmy发现的问题进行更正:

添加参数:-c -l "c:/FileFolder/test.sh"

您不再需要“启动位置”参数。


0
长期以来,我一直遇到与OP相同的问题:command not found错误,尽管在Cygwin终端中运行同一脚本正常。经过更多研究,我最终意识到原因是因为我的通常的Bash PATH ~/.bashprofile没有被加载,我需要使用Windows的环境变量窗口将C:\cygin64\bin添加到我的PATH环境变量(系统或用户,没有太大关系)。这个目录包含常见的系统可执行文件,例如grepawk,因此Bash在路径添加到Windows' PATH之前无法找到它们。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接