我编写了shell脚本,我试图将该脚本作为客户端钩子脚本但是没有获取脚本引擎,我应该用它来运行.sh文件。通常作为我见过.js文件将被用作SVN的钩子脚本,遗憾的是我不太了解jscript所以请帮我如何在SVN中添加和运行脚本作为客户端钩子脚本。我试过用 WScipt 和 CScirpt ,但它们都不适用于我的shell脚本。
#!/bin/bash
MAIN_DIR="/cygdrive/e/Trunk/COMMON"
FILE_NAME="/cygdrive/e/Trunk_PRE_COMMIT_HOOK/long_path.txt"
lengthy_path=`find ${MAIN_DIR} -regextype posix-extended -regex '.{500,}'| awk -F'Trunk/' '{print $2}' > ${FILE_NAME}`
if [ -f ${FILE_NAME} ]
then
if [ -s ${FILE_NAME} ]
then
echo -e "\n\n\nSorry the path of a file exceeds 256 charectors, please make it shorten and try commiting again.You can see the path in $FILE_NAME"
else
echo -e "\n\n\nPath is perfect code can be committed..........."
fi
else
echo -e "\n\n\nFile not exists............"
fi
答案 0 :(得分:1)
您正在尝试在Windows上执行bash脚本,这意味着您需要安装Cygwin或者可以使用新的bash shell functionality in Windows 10。我对这两者都没什么经验,但希望我能指出你正确的方向。
如果您正在使用Cygwin,请在Tortoise钩子脚本配置对话框中使用以下命令(the documentation中的图4.87):
C:\cygwin\bin\bash C:\path\to\your_script.sh
(来自this answer)
如果您使用的是Windows 10 bash shell,请使用以下命令:
bash -c "/mnt/c/path/to/your_script.sh"
(来自this page下的“从外部Bash运行Linux命令”)
免责声明:我没有测试其中任何一项,因为我没有时间或方法。尝试一下,并以任何方式留下一些反馈。