运行Bash脚本时提示letsencrypt_webfaction命令未找到,直接执行正常
解决脚本中
letsencrypt_webfaction: command not found的问题 这问题我之前部署证书时也踩过坑!核心原因是脚本在非交互式Shell环境下运行时,PATH环境变量和你平时手动敲命令的交互式Shell不一样,系统找不到letsencrypt_webfaction命令的安装路径。
下面给你几个靠谱的解决办法:
方法1:直接使用命令的绝对路径
先在你能正常运行命令的终端里,执行以下命令找到letsencrypt_webfaction的绝对路径:
which letsencrypt_webfaction
你会得到类似/home/your-username/.local/bin/letsencrypt_webfaction这样的输出。
然后把脚本里的letsencrypt_webfaction替换成这个绝对路径,比如:
#!/bin/bash /home/your-username/.local/bin/letsencrypt_webfaction --letsencrypt_account_email <Email I use> --domains <domains I use> --public <public_file> --username <username> --password <password>
方法2:在脚本中补充PATH环境变量
如果不想写死绝对路径,可以在脚本开头把letsencrypt_webfaction所在的目录添加到PATH里:
#!/bin/bash # 获取命令所在目录并添加到PATH LETSENCRYPT_DIR=$(dirname $(which letsencrypt_webfaction)) export PATH="$PATH:$LETSENCRYPT_DIR" # 执行原命令 letsencrypt_webfaction --letsencrypt_account_email <Email I use> --domains <domains I use> --public <public_file> --username <username> --password <password>
额外注意事项
- 确保脚本开头有
#!/bin/bash声明,并且给脚本加上执行权限:chmod +x generate_certificate.sh - 运行脚本时用
./generate_certificate.sh,而不是sh generate_certificate.sh,避免用错Shell环境
内容的提问来源于stack exchange,提问作者TJB
相关产品推荐
相关产品推荐

