Cuando ejecuto el siguiente script, sigue de forma predeterminada en la declaración else y no estoy seguro de por qué. Incluso incluí un flujo de trabajo echo $ que me mostró el nombre que esperaba ver, pero sigue siendo predeterminado en la declaración else.
Intenté incluir un flujo de trabajo de exportación namecheck=$ para ver si ese era el problema, pero aún así dio el mismo resultado final
#!/bin/sh read -p "Enter the workflow name: " workflowName workflowName=${workflowName} curl --request GET --url https://website.com > workflowjson.txt workflow=$(jq -r .metadata.name workflowjson.txt) echo $workflow if [ -z "$workflow" ] then echo "Workflow is Valid" else echo "Workflow is not valid" fiman test muestra
-z STRINGla longitud deSTRINGes cero
El flujo de trabajo de salida del código Workflow is Valid cuando el flujo de trabajo está vacío.
Cambie las partes then y else , o niegue la condición (utilice -n en lugar de -z ).
intente sacar las comillas del flujo de trabajo y colóquelas en una línea separada
if [ -z $workflow ] then echo "Workflow is Valid" else echo "Workflow is not valid" fi