一键安装OneIndex by caddy,才学shell,拿着两位大佬的脚本杂交了一下,结果不能运行。求指点
报错信息:./OneIndex.sh:行193: install_caddy: 未找到命令

  1. #!/usr/bin/env bash
  2. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
  3. export PATH
  4. file="/usr/local/caddy/"
  5. caddy_file="/usr/local/caddy/caddy"
  6. caddy_conf_file="/usr/local/caddy/caddyconf"
  7. Info_font_prefix="\033[32m" && Error_font_prefix="\033[31m" && Info_background_prefix="\033[42;37m" && Error_background_prefix="\033[41;37m" && Font_suffix="\033[0m"
  8. Check_root(){
  9.         [[ $EUID != 0 ]] && echo -e "${Error} 当前非ROOT账号(或没有ROOT权限),无法继续操作,请更换ROOT账号或使用 ${Green_background_prefix}sudo su${Font_color_suffix} 命令获取临时ROOT权限(执行后可能会提示输入当前账号的密码)。" && exit 1
  10. }
  11. Check_sys(){
  12.         if [[ -f /etc/redhat-release ]]; then
  13.                 release="centos"
  14.         elif cat /etc/issue | grep -q -E -i "debian"; then
  15.                 release="debian"
  16.         elif cat /etc/issue | grep -q -E -i "ubuntu"; then
  17.                 release="ubuntu"
  18.         elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then
  19.                 release="centos"
  20.         elif cat /proc/version | grep -q -E -i "debian"; then
  21.                 release="debian"
  22.         elif cat /proc/version | grep -q -E -i "ubuntu"; then
  23.                 release="ubuntu"
  24.         elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then
  25.                 release="centos"
  26.     fi
  27.         bit=$(uname -m)
  28. }
  29. Check_installed_status(){
  30.         [[ ! -e ${caddy_file} ]] && echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy 没有安装,请检查 !" && exit 1
  31. }
  32. Download_caddy(){
  33.         [[ ! -e ${file} ]] && mkdir "${file}"
  34.         cd "${file}"
  35.         PID=$(ps -ef |grep "caddy" |grep -v "grep" |grep -v "init.d" |grep -v "service" |grep -v "caddy_install" |awk ‘{print $2}’)
  36.         [[ ! -z ${PID} ]] && kill -9 ${PID}
  37.         [[ -e "caddy_linux*.tar.gz" ]] && rm -rf "caddy_linux*.tar.gz"
  38.        
  39.         if [[ ! -z ${extension} ]]; then
  40.                 extension_all="?plugins=${extension}&license=personal"
  41.         else
  42.                 extension_all="?license=personal"
  43.         fi
  44.        
  45.         if [[ ${bit} == "x86_64" ]]; then
  46.                 wget –no-check-certificate -O "caddy_linux.tar.gz" "https://caddyserver.com/download/linux/amd64${extension_all}"
  47.         elif [[ ${bit} == "i386" || ${bit} == "i686" ]]; then
  48.                 wget –no-check-certificate -O "caddy_linux.tar.gz" "https://caddyserver.com/download/linux/386${extension_all}"
  49.         elif [[ ${bit} == "armv7l" ]]; then
  50.                 wget –no-check-certificate -O "caddy_linux.tar.gz" "https://caddyserver.com/download/linux/arm7${extension_all}"
  51.         else
  52.                 echo -e "${Error_font_prefix}[错误]${Font_suffix} 不支持 [${bit}] ! 请向本站反馈[]中的名称,我会看看是否可以添加支持。" && exit 1
  53.         fi
  54.         [[ ! -e "caddy_linux.tar.gz" ]] && echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy 下载失败 !" && exit 1
  55.         tar zxf "caddy_linux.tar.gz"
  56.         rm -rf "caddy_linux.tar.gz"
  57.         [[ ! -e ${caddy_file} ]] && echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy 解压失败或压缩文件错误 !" && exit 1
  58.         rm -rf LICENSES.txt
  59.         rm -rf README.txt
  60.         rm -rf CHANGES.txt
  61.         rm -rf "init/"
  62.         chmod +x caddy
  63. }
  64. Service_caddy(){
  65.         if [[ ${release} = "centos" ]]; then
  66.                 if ! wget –no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/service/caddy_centos -O /etc/init.d/caddy; then
  67.                         echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy服务 管理脚本下载失败 !" && exit 1
  68.                 fi
  69.                 chmod +x /etc/init.d/caddy
  70.                 chkconfig –add caddy
  71.                 chkconfig caddy on
  72.         else
  73.                 if ! wget –no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/service/caddy_debian -O /etc/init.d/caddy; then
  74.                         echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy服务 管理脚本下载失败 !" && exit 1
  75.                 fi
  76.                 chmod +x /etc/init.d/caddy
  77.                 update-rc.d -f caddy defaults
  78.         fi
  79. }
  80. Install_dependencies(){
  81.   apt-get update -y
  82.   apt-get install gcc g++ make zip lrzsz psmisc autoconf curl git dnsutils php7.0 php7.0-cgi php7.0-fpm php7.0-curl php7.0-common php7.0-gd php7.0-zip -y
  83.   service php7.0-fpm start
  84. }
  85. Set_conf(){
  86.   echo && stty erase ‘^H’ && read -p "输入域名(请提前绑定到vps IP): " domain
  87.   [[ -z ${domain} ]] && echo "域名为空" && exit 0
  88.   echo "正在检查输入域名是否解析IP"
  89.   IP=`dig $domain | grep $domain | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}"`
  90.   IP_VPS=`curl http://whatismyip.akamai.com`
  91.   [[ ${IP} != ${IP_VPS} ]] && echo "解析暂未生效,请稍候重试" && exit 0
  92.   echo "
  93.   $domain {
  94.     root ${caddy_file}/$domain
  95.     gzip
  96.     fastcgi / /run/php/php7.0-fpm.sock {
  97.       ext     .php
  98.       split   .php
  99.       index   index.php
  100.     }
  101.     rewrite {
  102.       to {path} {path}/ /index.php?{query}
  103.     }
  104.   }
  105.   " >> ${caddy_conf_file}
  106.   ulimit -n 51200
  107.   nohup caddy -conf=${caddy_conf_file} -agree >> /tmp/caddy.log 2>&1 &
  108.   cd ${caddy_file}/$domain
  109.   git clone https://github.com/donwa/oneindex.git
  110.   mv oneindex/* .
  111.   rm -rf oneindex
  112.   chmod +x -R cache config
  113.   clear
  114. }
  115. Install_all(){
  116.         Check_root
  117.         if [[ -e ${caddy_file} ]]; then
  118.                 echo && echo -e "${Error_font_prefix}[信息]${Font_suffix} 检测到 Caddy 已安装,是否继续安装(覆盖更新)?[y/N]"
  119.                 read -e -p "(默认: n):" yn
  120.                 [[ -z ${yn} ]] && yn="n"
  121.                 if [[ ${yn} == [Nn] ]]; then
  122.                         echo && echo "已取消…" && exit 1
  123.                 fi
  124.         fi
  125.         Download_caddy
  126.         Service_caddy
  127.         Install_dependencies
  128.         Set_conf
  129.         echo && echo -e " 安装完毕,访问域名 https://$domain
  130. 请自行访问域名进行设置
  131. 请自行添加计划任务刷新缓存
  132. crontab -e
  133. */5 * * * * php ${caddy_file}/$domain/one.php cache:refresh
  134. 脚本已经内置去除/?/伪静态,如有需要请在后台设置
  135. PHP.ini /etc/php/7.0/fpm/php.ini
  136. Caddy 使用命令:${caddy_conf_file}
  137. 日志文件:cat /tmp/caddy.log
  138. 使用说明:service caddy start | stop | restart | status
  139. 或者使用:/etc/init.d/caddy start | stop | restart | status
  140. ${Info_font_prefix}[信息]${Font_suffix} Caddy 安装完成!" && echo
  141. }
  142. Uninstall_caddy(){
  143.         Check_installed_status
  144.         echo && echo "确定要卸载 Caddy ? [y/N]"
  145.         read -e -p "(默认: n):" unyn
  146.         [[ -z ${unyn} ]] && unyn="n"
  147.         if [[ ${unyn} == [Yy] ]]; then
  148.                 PID=`ps -ef |grep "caddy" |grep -v "grep" |grep -v "init.d" |grep -v "service" |grep -v "caddy_install" |awk ‘{print $2}’`
  149.                 [[ ! -z ${PID} ]] && kill -9 ${PID}
  150.                 if [[ ${release} = "centos" ]]; then
  151.                         chkconfig –del caddy
  152.                 else
  153.                         update-rc.d -f caddy remove
  154.                 fi
  155.                 [[ -s /tmp/caddy.log ]] && rm -rf /tmp/caddy.log
  156.                 rm -rf ${caddy_file}
  157.                 rm -rf ${caddy_conf_file}
  158.                 rm -rf /etc/init.d/caddy
  159.                 [[ ! -e ${caddy_file} ]] && echo && echo -e "${Info_font_prefix}[信息]${Font_suffix} Caddy 卸载完成 !" && echo && exit 1
  160.                 echo && echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy 卸载失败 !" && echo
  161.         else
  162.                 echo && echo "卸载已取消…" && echo
  163.         fi
  164. }
  165. Check_sys
  166. action=$1
  167. extension=$2
  168. [[ -z $1 ]] && action=install
  169. case "$action" in
  170.     install|uninstall)
  171.     ${action}_caddy
  172.     ;;
  173.     *)
  174.     echo "输入错误 !"
  175.     echo "用法: {install | uninstall}"
  176.     ;;
  177. esac

复制代码

江苏网友:

运行下看哪报错了
上海网友:没有,用错词语了,立马修改了。不好意思
四川网友:你贴出来的好像没有193行??
install_caddy这个函数没有~~~
黑龙江网友:
这就是全部代码,vps里面运行就是这么报错的,确实没有install_caddy
河北网友:为什么不是报186行的错……
你都知道没有install_caddy函数了,还不赶紧写一个……
湖北网友:./OneIndex.sh:行193: install_caddy: 未找到命令

这是报错。不会弄了,所以来求教
河南网友:
报错说的很清楚了,没有install_caddy函数
你自己组合两个脚本也要一小部分一小部分慢慢挪啊,而且至少先搞懂哪一部分是干什么的再组合


install_caddy函数从原来两个脚本里找,还要看里面有没有用到其它函数
或者把Install_all改为install_caddy试试
青海网友:
大佬可否详细指点,谢谢
关键是我找不到哪里使用了install_caddy

山西网友:install_caddy函数从原来两个脚本里找,还要看里面有没有用到其它函数
或者把Install_all改为install_caddy试试
福建网友:install_caddy函数从原来两个脚本里找,还要看里面有没有用到其它函数
或者把Install_all改为install_caddy试试
广西网友:

  1. action=$1        该脚本的第一个参数
  2. extension=$2        第二个参数
  3. [[ -z $1 ]] && action=install        未指定则默认为install
  4. case "$action" in
  5.     install|uninstall)
  6.     ${action}_caddy      如果action是 install 或 uninstall 就运行 install_caddy 或 uninstall_caddy
  7.     ;;
  8.     *)
  9.     echo "输入错误 !"        否则输出相关提示信息
  10.     echo "用法: {install | uninstall}"
  11.     ;;
  12. esac

复制代码

以上信息转载自Hostloc。

01-24 02:59