отображать предупреждения об opcache, curl и многом другом

Вы не можете. В исходном коде для expect-5.45.4мы находим в exp_main_sub.cв строке 711

            case 'c': /* command */
                    exp_cmdlinecmds = TRUE;
                    rc = Tcl_Eval(interp,optarg);
                   ...

, который обрабатывает код -c. $argvи друзья создаются только после того, как -ceval завершится в строке 850 и далее

    /* collect remaining args and make into argc, argv0, and argv */
    sprintf(argc_rep,"%d",argc-optind);
    Tcl_SetVar(interp,"argc",argc_rep,0);
    expDiagLog("set argc %s\r\n",argc_rep);

   ...
    Tcl_SetVar(interp,"argv",args,0);

, поэтому $argvабсолютно не существует, когда выполняется код -c.

Одно из обходных решений: Запустить локальный сценарий ожидания на удаленном сервере? , что влечет за собой передачу кода TCL на стандартный ввод и последующее чтение в expectфайла/dev/stdin

$ echo puts \[lindex \$argv 1\] | expect /dev/stdin blee bla blu
bla

Другой обходной путь — выбросить оболочку и написать все это на TCL

#!/usr/bin/env expect
set FILE [lindex $argv 0]
set HOST [lindex $argv 1]
...

А потом chmod +xэто и запустить

./whatyoucalledtheabove somefile somehost

Он должен содержать все, что делает ваш текущий сценарий оболочки выше вызова expect...

1
09.11.2019, 10:27
1 ответ

По сути, ваш экземпляр php на сервере пропустил несколько расширений (, и он все еще пытается их загрузить, предполагая, что эти расширения все еще присутствуют в дополнительных конфигурациях php (, поэтому сначала попробуйте проверить эти дополнительные конфигурации в подкаталогах /etc/php. и закомментируйте их (точные, которые удаляют ошибки в настоящее время )и после простой переустановки их с помощью команды менеджера пакетов (yum upgrade php -opcache, fe -для centos или для debian/ubuntu -apt переустановите php -opcache и то же самое для всех остальных модулей, которые упоминались ранее

1
27.01.2020, 23:40

Теги

Похожие вопросы