¿Puede alguien dar un ejemplo donde declare -x sería útil?Cómo usar declare -x en bash
Respuesta
declare -x FOO
es lo mismo que export FOO
. "Exporta" la variable FOO
como una variable de entorno, por lo que los programas que ejecuta desde esa sesión de shell lo verían.
Declare -x puede utilizarse en lugar de eval para permitir variables que se establecen como argumentos a la cáscara. Por ejemplo, puede reemplazar la extrema inseguridad:
# THIS IS NOT SAFE while test $# -gt 0; do eval export $1 shift done
con el más seguro:
while test $# -gt 0; do declare -x $1 shift done
Dicho sea de paso, esta construcción permite al usuario invocar el script como:
$ ./test-script foo=bar
en lugar de la más idiomática (pero confuso para algunos):
$ foo=bar ./test-script
Gracias. Pero, ¿cómo es la primera opción insegura? – abc
Cada vez que evalúa una cadena, le otorga al usuario que puede construir la cadena la capacidad de hacer que la secuencia de comandos haga cualquier cosa. –
- 1. OS X bash: dirname
- 2. ¿Cómo usar no (!) Entre paréntesis en Bash?
- 3. Configuración Bash en Mac OS X 10.4+
- 4. ¿cómo funcionan los php's declare (ticks)?
- 5. DllImport vs Declare en VB.NET
- 6. Reenviar-declare enum en Objective-C
- 7. Cómo usar matrix.preScale (x, y)
- 8. Declare a const array
- 9. Fecha relativa de Bash (x días atrás)
- 10. Declare un TDateTime como Const en Delphi
- 11. declare la variable de conexión
- 12. ¿Es posible usar $ array =() en bash?
- 13. cuándo usar {x: Tipo ...}?
- 14. CMake: cómo usar el comando bash en CMakeLists.txt
- 15. ¿Cómo usar el comando de lectura en Bash?
- 16. ¿Cómo puedo usar la sintaxis Bash en los objetos Makefile?
- 17. ¿Cómo usar el operador de mod en bash?
- 18. Crear una nueva palabra clave Perl con Devel :: Declare
- 19. Indicador Bash en la terminal OS X roto
- 20. Borrar todos menos los archivos X más recientes en bash
- 21. ¿Por qué debería usar operator.itemgetter (x) en lugar de [x]?
- 22. Cómo iterar sobre matrices asociativas en Bash
- 23. Bash: ¿Cómo escapar $ @?
- 24. ¿Cómo puedo usar el directorio/home en Mac OS X
- 25. Cómo usar dylib en Mac OS X (C++)
- 26. Cómo usar el diccionario Mac OS X en eclipse
- 27. ¿Cómo puedo obtener la fecha actual en formato YYYY-MM-DD en (OS X) bash?
- 28. Necesito ayuda para instalar MooseX :: Declare
- 29. Errores útiles para Moose y MooseX :: Declare
- 30. autoconf usando sh, necesito SHELL = BASH, ¿cómo forzar autoconf para usar bash?
No creo que sean sinónimos exactos. –
¿No? Entonces, ¿por qué cuando ejecutas 'export' (sin ningún argumento), imprime las exportaciones actuales usando' declare -x'? –
No estoy seguro, pero vea [esta pregunta] (http://stackoverflow.com/q/7506644/834176). Lo intenté y actúan de manera diferente. –