В posix нет lchmod (), кроме fchmodat (), который позволяют установить разрешения для символической ссылки. Это по-прежнему не требует оценки разрешений символических ссылок.
En:
a=$(cmd)
Es un comando simple sin parte de comando, por lo que el estado de salida es el de la sustitución del comando. en:
a=$(cmd) export a
o
export a="$(cmd)"
Hay una parte de comando aquí (incluso si en algunos shells, export
está a medio camino entre un comando y una palabra clave ), por lo que se devuelve su estado de salida. Si cmd
falla y no produce ningún resultado, export a=
aún se ejecutará y tendrá éxito, por lo que export
devolverá un estado de salida 0.
Aquí te gustaría:
a=$(cmd)
export a
O incluso mejor, deshágase de ese poco confiable set -e
y realice el manejo de errores adecuado a mano:
a=$(cmd) || exit
export a
Véase, p. BashFAQ 015 :"¿Por qué no establece -e hace lo que esperaba?" para obtener más ejemplos de por qué y cómo set -e
puede producir resultados inesperados.