执行bash脚本时提示git命令不存在报错该如何解决?
问题原因
你脚本中覆盖了系统特殊环境变量PATH:PATH是类Unix系统中用于检索可执行程序路径的内置环境变量,你在脚本中先声明了PATH=""清空了原有值,后续又将其赋值为自定义的文件路径,导致系统无法检索到git命令的安装位置,因此抛出command not found报错。
解决方案
优先选择第一种方案:
- 替换自定义变量名,不要使用
PATH作为自己的变量名,修改后参考代码如下:
#!/bin/bash echo "commit and push all files in this folder: " INPUTPATH="" FILENAME="README2" # 改用不与系统变量冲突的自定义变量名 TARGET_PATH="" if [ -s text.txt ] then echo "file is not empty" INPUTPATH=$(<text.txt) else read INPUTPATH echo "$INPUTPATH" > text.txt fi TARGET_PATH="$INPUTPATH/$FILENAME" for run in {1..10}; do echo $RANDOM >> $TARGET_PATH done cd $INPUTPATH && git commit -am "commit" cd $INPUTPATH && git status
- 临时兼容方案:先在终端执行
which git获取git的绝对安装路径(通常为/usr/bin/git),将脚本中所有git替换为该绝对路径即可,该方案无需修改变量名,但不推荐长期使用。
内容的提问来源于stack exchange,提问作者Flap13
相关产品推荐
相关产品推荐

