Su script es claramente un bash
script, pero lo está ejecutando usando sh
.
En lugar de usar explícitamente sh
para iniciar el script,
bash
o #!
-apropiada en la primera línea que apunte al intérprete bash
, y ejecute el script con ./cli-unit.sh
. No se puede esperar que el shell sh
comprendabash
-la sintaxis específica del shell.
Tengo un par de problemas adicionales con algunas de las cosas en la secuencia de comandos que muestra:
SHELL
, que generalmente es la ruta al intérprete de shell actual. diff
para hacer una comparación de cadenas. Solo haz if [ "$variable1" != "$variable2" ]
para probar la desigualdad. printf
en lugar de echo
para generar datos variables (consulte " ¿Por qué printf es mejor que echo? " ). Dirigiéndose aldiff
:
if [ "$FOUND" != "$EXPECTED" ]; then
# code as before
return 1
fi
# code as before
return 0
Dentro de la rama if
, aún puede usar diff
para mostrar la diferencia (, especialmente si otro script o usuario está esperando ese tipo de resultado de este guión ). Otra opción sería hacer
if [ "$FOUND" != "$EXPECTED" ]; then
# $FOUND is different from $EXPECTED
printf 'FAIL (%s): Found: %s\n' "$TITLE" "$FOUND"
printf 'FAIL (%s): Expected: %s\n' "$TITLE" "$EXPECTED"
# other code here
fi
# rest of script
o algo similar.
Насколько я помню из ваших снимков экрана, вы используете каталог /srv для обслуживания ваших файлов, что не является стандартным способом в Debian, насколько я помню.
Обязательно проверьте в /etc/apache2/apache2.conf, что доступ для сервера apache к каталогу /srv разрешен, так как в стандартной конфигурации доступ к этому каталогу запрещен.
Это должна быть запись с комментариями, как эта:
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
Просто раскомментируйте этот блок и перезагрузите apache2 через systemctl reload apache2
и каталоги в /srv должны быть доступны.
Также не забудьте активировать сайт через a2ensite linuxvm232b
и systemctl reload apache2