{"id":35609,"date":"2023-09-28T21:04:20","date_gmt":"2023-09-28T19:04:20","guid":{"rendered":"\/tutoriales\/?p=35609"},"modified":"2026-09-03T08:46:33","modified_gmt":"2026-09-03T06:46:33","slug":"variables-en-bash","status":"publish","type":"post","link":"\/ar\/tutoriales\/variables-en-bash\/","title":{"rendered":"Qu\u00e9 son las variables en Bash y c\u00f3mo usarlas"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Las variables de Bash son espacios de almacenamiento con un nombre asociado que guardan valores para poder consultarlos y manipularlos desde la l&iacute;nea de comandos de Linux. En los scripts de shell, permiten trabajar con informaci&oacute;n din&aacute;mica, como rutas de archivos, ajustes de configuraci&oacute;n o resultados de comandos, sin tener que escribir esos datos directamente en el c&oacute;digo.<\/p><p class=\"wp-block-paragraph\">Esto es lo que necesitas saber sobre las variables de Bash:<\/p><ul class=\"wp-block-list\">\n<li><strong>Asignaci&oacute;n de variables de Bash.<\/strong> Usa el formato <strong>clave=valor<\/strong> sin espacios a ambos lados del signo igual. Si un valor contiene espacios, escr&iacute;belo entre comillas.<\/li>\n\n\n\n<li><strong>Tipos de variables de Bash.<\/strong> Puedes definir tus propias variables para usarlas en un script o una sesi&oacute;n de shell, o variables de entorno que los procesos secundarios pueden heredar.<\/li>\n\n\n\n<li><strong>&Aacute;mbito de las variables de Bash.<\/strong> El &aacute;mbito determina desde d&oacute;nde se puede acceder a una variable. Por defecto, las variables son globales dentro de un script, pero puedes usar la palabra clave <strong>local<\/strong> para limitar su &aacute;mbito a una funci&oacute;n concreta.<\/li>\n\n\n\n<li><strong>Variables especiales de Bash.<\/strong> Usa variables como <strong>$0<\/strong>, <strong>$$<\/strong> y <strong>$?<\/strong> para obtener autom&aacute;ticamente datos como el nombre del script, identificadores de procesos y c&oacute;digos de salida.<\/li>\n\n\n\n<li><strong>Exportaci&oacute;n y eliminaci&oacute;n de variables.<\/strong> Exporta variables para que est&eacute;n disponibles en los procesos secundarios que se inicien desde el shell. Para eliminarlas, usa <strong>unset<\/strong>.<\/li>\n\n\n\n<li><strong>Uso de comillas y sustituci&oacute;n de comandos.<\/strong> Usa las comillas y la sustituci&oacute;n de comandos para controlar c&oacute;mo se interpretan los valores. Las comillas simples conservan el texto literalmente, mientras que las dobles permiten expandir variables. La sintaxis <strong>$(comando)<\/strong> permite capturar el resultado de un comando.<\/li>\n\n\n\n<li><strong>Usos habituales de las variables de Bash.<\/strong> Combina las variables de Bash con condicionales, bucles y arrays para trabajar con datos din&aacute;micos, algo especialmente &uacute;til para automatizar tareas.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Antes de ver estos usos en detalle, vamos a empezar por lo b&aacute;sico: c&oacute;mo asignar valores a las variables de Bash.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-asignar-valores-a-variables-en-bash\">C&oacute;mo asignar valores a variables en Bash<\/h2><p class=\"wp-block-paragraph\">Para asignar un valor a una variable de Bash, debes usar el operador de asignaci&oacute;n (<strong>=<\/strong>) para asociar un nombre con un valor.<\/p><p class=\"wp-block-paragraph\">La regla m&aacute;s importante es no dejar espacios a ambos lados del operador de asignaci&oacute;n.<\/p><p class=\"wp-block-paragraph\">Si los a&ntilde;ades, el shell interpretar&aacute; el nombre de la variable como un comando y no como una asignaci&oacute;n, lo que provocar&aacute; un error.<\/p><p class=\"wp-block-paragraph\">La <strong>asignaci&oacute;n directa<\/strong> es la forma m&aacute;s b&aacute;sica de definir una variable y consiste en asociar un valor directamente con su nombre. Suele utilizarse para definir valores fijos o rutas de configuraci&oacute;n que no necesitan calcularse de forma din&aacute;mica.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\nserver_name=Apache-01\n\necho $server_name<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aa03901d09d3\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aa03901d09d3\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2026\/08\/valor-de-la-variable-de-salida-de-un-script.png\/public\" alt=\"El terminal muestra el valor de una variable de un script\" class=\"wp-image-56176\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">Por defecto, <strong>Bash trata los valores num&eacute;ricos como cadenas de caracteres<\/strong>. Sin embargo, puede interpretarlos como enteros en determinados contextos aritm&eacute;ticos, como las expresiones entre par&eacute;ntesis dobles (<strong>(( ))<\/strong>) o al usar el comando <strong>expr<\/strong>.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\ninitial_value=10\n\n(( result = initial_value + 5 ))\n\necho $result<\/pre><p class=\"wp-block-paragraph\">Si quieres asignar valores que contengan espacios o caracteres especiales, usa comillas. De lo contrario, Bash puede interpretar las distintas partes del valor por separado.<\/p><p class=\"wp-block-paragraph\">Al escribir el texto entre comillas, te aseguras de que el shell trate toda la secuencia como un &uacute;nico valor.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\nerror_msg=\"Archivo no encontrado\"\n\necho $error_msg<\/pre><p class=\"wp-block-paragraph\">Para que Bash interprete correctamente las variables, tambi&eacute;n debes respetar determinadas reglas al nombrarlas.<\/p><p class=\"wp-block-paragraph\">Los nombres solo pueden contener caracteres alfanum&eacute;ricos y guiones bajos, y no pueden empezar por un n&uacute;mero. Adem&aacute;s, Bash distingue entre may&uacute;sculas y min&uacute;sculas, por lo que <strong>PATH<\/strong>, <strong>Path<\/strong> y <strong>path<\/strong> son tres variables distintas.<\/p><h2 class=\"wp-block-heading\" id=\"h-tipos-de-variables-en-bash\">Tipos de variables en Bash<\/h2><p class=\"wp-block-paragraph\">Seg&uacute;n su funci&oacute;n y qui&eacute;n puede acceder a ellas, las variables de Bash se dividen en dos tipos: variables definidas por el usuario y variables de entorno.<\/p><h3 class=\"wp-block-heading\">Qu&eacute; son las variables definidas por el usuario<\/h3><p class=\"wp-block-paragraph\">Las variables definidas por el usuario permiten almacenar datos temporales en un script de Bash o durante una sesi&oacute;n de terminal. Pertenecen al proceso que las ha creado y solo existen mientras se ejecuta el script o permanece activa la sesi&oacute;n correspondiente.<\/p><p class=\"wp-block-paragraph\">Para crearlas, basta con asignar un valor a un nombre nuevo. Por ejemplo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\napp_dir=\"\/var\/www\/html\"\n\necho \"Desplegando en: $app_dir\"<\/pre><p class=\"wp-block-paragraph\">En este <a href=\"\/ar\/tutoriales\/ejemplos-de-bash-script\/\">ejemplo de script de Bash<\/a>, la variable <strong>app_dir<\/strong> est&aacute; disponible en el proceso que ejecuta el script, pero los procesos secundarios no la heredan a menos que se exporte.<\/p><h3 class=\"wp-block-heading\">Qu&eacute; son las variables de entorno<\/h3><p class=\"wp-block-paragraph\">En Bash, las <a href=\"\/ar\/tutoriales\/variables-de-entorno-linux\/\">variables de entorno<\/a> contienen valores que los procesos secundarios iniciados desde el shell pueden heredar. No est&aacute;n disponibles autom&aacute;ticamente para otros usuarios ni para los programas que ya est&aacute;n en ejecuci&oacute;n.<\/p><p class=\"wp-block-paragraph\">Puedes convertir una variable del shell en una variable de entorno con el comando <strong>export<\/strong>. Por convenci&oacute;n, los nombres de estas variables suelen escribirse en may&uacute;sculas. Por ejemplo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">export VAR=value<\/pre><p class=\"wp-block-paragraph\">Si despu&eacute;s ejecutas un script como proceso secundario desde ese mismo shell, heredar&aacute; autom&aacute;ticamente el valor de <strong>VAR<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\necho \"$VAR\"<\/pre><p class=\"wp-block-paragraph\">Estos son algunos ejemplos de variables de entorno de Bash:<\/p><figure tabindex=\"0\" class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Variable<\/strong><\/th><th><strong>Ejemplo<\/strong><\/th><th><strong>Funci&oacute;n<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>SHELL<\/strong><\/td><td>\/bin\/bash<\/td><td>Indica el shell utilizado<\/td><\/tr><tr><td><strong>PWD<\/strong><\/td><td>\/root<\/td><td>Indica el directorio de trabajo actual<\/td><\/tr><tr><td><strong>LOGNAME<\/strong><\/td><td>root<\/td><td>Indica el nombre del usuario que ha iniciado sesi&oacute;n<\/td><\/tr><tr><td><strong>MOTD_SHOWN<\/strong><\/td><td>pam<\/td><td>Indica si se ha mostrado el mensaje del d&iacute;a del sistema<\/td><\/tr><tr><td><strong>HOME<\/strong><\/td><td>\/root<\/td><td>Indica el directorio personal del usuario<\/td><\/tr><tr><td><strong>SSH_CONNECTION<\/strong><\/td><td>185.185.185.185 54321 185.185.185.186 12<\/td><td>Informaci&oacute;n de la conexi&oacute;n SSH [IP del usuario] [puerto del usuario] [IP de la m&aacute;quina Linux] [puerto de la m&aacute;quina Linux]<\/td><\/tr><tr><td><strong>TERM<\/strong><\/td><td>xterm-256color<\/td><td>Indica el tipo de terminal<\/td><\/tr><tr><td><strong>USER<\/strong><\/td><td>root<\/td><td>Indica el nombre del usuario actual<\/td><\/tr><tr><td><strong>SSH_CLIENT<\/strong><\/td><td>185.185.185.185 54321 12<\/td><td>Informaci&oacute;n del cliente SSH [IP del usuario] [puerto del usuario] [puerto de la m&aacute;quina Linux]<\/td><\/tr><tr><td><strong>PATH<\/strong><\/td><td>\/usr\/local\/sbin<\/td><td>Indica los directorios en los que Bash busca los comandos<\/td><\/tr><tr><td><strong>SSH_TTY<\/strong><\/td><td>\/dev\/pts\/0<\/td><td>Indica la ruta del dispositivo de terminal asociado a la conexi&oacute;n SSH<\/td><\/tr><\/tbody><\/table><\/figure><p class=\"wp-block-paragraph\">Para consultar las variables de entorno de tu sistema, usa el comando <strong>printenv<\/strong>. Si quieres consultar el resultado c&oacute;modamente p&aacute;gina por p&aacute;gina, puedes pasarlo a <strong>less<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">printenv | less<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aa03901d3f99\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aa03901d3f99\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2026\/08\/una-salida-simplificada-de-las-variables-de-entorno-del-shell.png\/w=1024,h=1024,fit=scale-down\" alt=\"El terminal muestra una lista simplificada de las variables de entorno del shell\" class=\"wp-image-56177\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-como-funciona-el-ambito-de-las-variables-en-bash\">C&oacute;mo funciona el &aacute;mbito de las variables en Bash<\/h2><p class=\"wp-block-paragraph\">El <strong>&aacute;mbito de una variable<\/strong> determina desde d&oacute;nde se puede acceder a ella o modificarla. Controlarlo evita, por ejemplo, que una variable definida dentro de una funci&oacute;n modifique por accidente otra variable con el mismo nombre en el script principal.<\/p><p class=\"wp-block-paragraph\">Por defecto, las variables declaradas en un script son globales dentro de ese script, por lo que tambi&eacute;n puedes acceder a ellas y modificarlas desde las funciones. Para limitar una variable a una funci&oacute;n y evitar que modifique otra global con el mismo nombre, usa la palabra clave <strong>local<\/strong>.<\/p><p class=\"wp-block-paragraph\">Por ejemplo, el siguiente script contiene dos variables llamadas <strong>status<\/strong>. La variable global tiene el valor <strong>Processing<\/strong>, mientras que la variable local de la funci&oacute;n <strong>update_status()<\/strong> tiene asignado el valor <strong>Done<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\n# Global variable\n\nstatus=\"Processing\"\n\nupdate_status() {\n    # Local variable with the same name\n    local status=\"Done\"\n    echo \"Inside function: $status\"\n}\n\necho \"Before function: $status\"\n\nupdate_status\n\necho \"After function: $status\"<\/pre><p class=\"wp-block-paragraph\">Fuera de la funci&oacute;n, <strong>status<\/strong> conserva el valor global <strong>Processing<\/strong>. Dentro de <strong>update_status()<\/strong>, en cambio, la variable local con el mismo nombre tiene el valor <strong>Done<\/strong>.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aa03901d65fe\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aa03901d65fe\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2026\/08\/funciones-diferentes-en-la-salida-de-la-consola-con-variables-locales-y-globales.png\/public\" alt=\"El terminal muestra los valores de una variable global y otra local con el mismo nombre\" class=\"wp-image-56178\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-como-funcionan-las-variables-especiales-en-bash\">C&oacute;mo funcionan las variables especiales en Bash<\/h2><p class=\"wp-block-paragraph\">Bash incluye un conjunto de par&aacute;metros especiales cuyos valores se actualizan autom&aacute;ticamente seg&uacute;n el script, sus argumentos y el estado de los procesos. En lugar de asignarles valores manualmente, puedes consultarlos para obtener informaci&oacute;n din&aacute;mica durante la ejecuci&oacute;n.<\/p><p class=\"wp-block-paragraph\">Estos par&aacute;metros proporcionan informaci&oacute;n sobre el script y sus argumentos:<\/p><ul class=\"wp-block-list\">\n<li><strong>$0<\/strong> representa el nombre del archivo del script que se est&aacute; ejecutando.<\/li>\n\n\n\n<li><strong>$#<\/strong> indica el n&uacute;mero total de argumentos que se han pasado al script.<\/li>\n\n\n\n<li><strong>$@<\/strong> se expande a todos los argumentos del script y, al usarse entre comillas dobles, conserva cada uno como un argumento independiente.<\/li>\n\n\n\n<li><strong>$<\/strong>* se expande a todos los argumentos del script y, al usarse entre comillas dobles, los trata como una &uacute;nica cadena.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Otros permiten consultar informaci&oacute;n sobre los procesos y el estado de ejecuci&oacute;n:<\/p><ul class=\"wp-block-list\">\n<li><strong>$$<\/strong> muestra el identificador de proceso (PID) del shell actual.<\/li>\n\n\n\n<li><strong>$!<\/strong> muestra el PID del &uacute;ltimo proceso iniciado en segundo plano.<\/li>\n\n\n\n<li><strong>$?<\/strong> indica el c&oacute;digo de salida del &uacute;ltimo comando ejecutado. Por convenci&oacute;n, 0 indica que el comando se ha ejecutado correctamente, mientras que un valor distinto de 0 suele indicar un error.<\/li>\n\n\n\n<li><strong>$_<\/strong> contiene el &uacute;ltimo argumento del comando anterior.<\/li>\n\n\n\n<li><strong>$-<\/strong> muestra las opciones activas del shell.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Por ejemplo, este script utiliza variables especiales para mostrar su propio nombre, el identificador del proceso y el c&oacute;digo de salida de un comando.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\necho \"Nombre del script: $0\"\necho \"PID actual: $$\"\n\n# Intenta mostrar un archivo inexistente para generar un error\nls \/dummy_file 2&gt;\/dev\/null\n\n# Muestra el c&oacute;digo de salida del comando anterior\necho \"C&oacute;digo de salida (0 = correcto, distinto de 0 = error): $?\"<\/pre><p class=\"wp-block-paragraph\">Los valores no est&aacute;n escritos directamente en el c&oacute;digo. Bash los obtiene de forma din&aacute;mica seg&uacute;n el script y el estado de ejecuci&oacute;n.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aa03901d91f0\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aa03901d91f0\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2026\/08\/valores-de-variables-especiales-en-salidas-de-terminal.png\/w=1024,h=1024,fit=scale-down\" alt=\"El terminal muestra los valores de varias variables especiales de Bash\" class=\"wp-image-56175\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-como-exportar-y-eliminar-variables-en-bash\">C&oacute;mo exportar y eliminar variables en Bash<\/h2><p class=\"wp-block-paragraph\">Las variables definidas en un shell no se transmiten autom&aacute;ticamente a los procesos secundarios, como scripts o nuevos shells iniciados desde el shell actual.<\/p><p class=\"wp-block-paragraph\">Si quieres que una variable del shell actual est&eacute; disponible para los procesos secundarios que se inicien despu&eacute;s, usa el comando <strong>export<\/strong>. Por ejemplo, este script exporta <strong>API_KEY<\/strong> e inicia un nuevo shell de Bash que puede acceder a su valor:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\n# Define and export a variable\n\nexport API_KEY=\"12345-ABCDE\"\n\n# Start a new child shell instance and print the variable\n\nbash -c 'echo \"Child shell sees: $API_KEY\"'<\/pre><p class=\"wp-block-paragraph\">En un caso real, un script puede iniciar varios procesos secundarios y no todos tienen por qu&eacute; necesitar una variable exportada. Por ejemplo, puede que tengas que pasar una contrase&ntilde;a o un token a un proceso concreto, pero que las operaciones posteriores ya no necesiten ese dato.<\/p><p class=\"wp-block-paragraph\">Para eliminar una variable del shell actual y evitar que los procesos secundarios que se inicien despu&eacute;s la hereden, usa el comando <strong>unset<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\n# Define and export a variable\n\nexport API_KEY=\"12345-ABCDE\"\n\n# Start a new child shell instance and print the variable\n\nbash -c 'echo \"Child shell sees: $API_KEY\"'\n\n# Remove variable from the memory for subsequent processes\n\nunset API_KEY\necho \"Parent shell after unset: $API_KEY\"\nbash -c 'echo \"Child shell sees: $API_KEY\"'<\/pre><p class=\"wp-block-paragraph\">En este ejemplo, el primer proceso secundario puede acceder al valor de la variable. Despu&eacute;s de ejecutar <strong>unset<\/strong>, la variable se elimina del shell actual y los procesos secundarios que se inicien a partir de ese momento ya no podr&aacute;n heredarla.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-usar-comillas-y-sustitucion-de-comandos-en-bash\"><strong>C&oacute;mo usar comillas y sustituci&oacute;n de comandos en Bash<\/strong><\/h2><p class=\"wp-block-paragraph\">Bash permite controlar c&oacute;mo interpreta el contenido de una cadena mediante distintos tipos de comillas y la sustituci&oacute;n de comandos.<\/p><h3 class=\"wp-block-heading\"><strong>Cu&aacute;ndo usar comillas simples y dobles<\/strong><\/h3><p class=\"wp-block-paragraph\">Las comillas simples (&lsquo;<strong>ejemplo<\/strong>&lsquo;) hacen que todos los caracteres de su interior, incluido <strong>$<\/strong>, se interpreten literalmente.<\/p><p class=\"wp-block-paragraph\">Por ejemplo, el siguiente script muestra <strong>$HOME<\/strong> en lugar de su valor porque est&aacute; escrito entre comillas simples:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\necho 'The value is $HOME'\n\n# Output: The value is $HOME<\/pre><p class=\"wp-block-paragraph\">Las comillas dobles (<strong>&ldquo;ejemplo&rdquo;<\/strong>) permiten expandir variables y realizar sustituciones de comandos dentro de una cadena. Por ejemplo, el siguiente script muestra el valor de <strong>$HOME<\/strong> en lugar de imprimir <strong>$HOME<\/strong> como texto literal:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\necho \"The value is $HOME\"\n\n# Output: The value is \/root<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aa03901dc1dc\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aa03901dc1dc\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2026\/08\/La-variable-de-Bash-toma-valores-distintos-segun-las-comillas-que-se-usen.png\/public\" alt=\"Una variable de Bash devuelve distintos valores seg&uacute;n las comillas utilizadas\" class=\"wp-image-56185\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><h3 class=\"wp-block-heading\">C&oacute;mo usar la sustituci&oacute;n de comandos<\/h3><p class=\"wp-block-paragraph\">La sustituci&oacute;n de comandos permite guardar el resultado de un comando en una variable. Para usarla, escribe el comando dentro de <strong>$( )<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\nbackup_file=\"data_$(date +%F).tar.gz\"\n\necho \"Backing up to: $backup_file\"<\/pre><p class=\"wp-block-paragraph\">Este script ejecuta <strong>date +%F<\/strong> e incorpora su resultado al valor de la variable <strong>backup_file<\/strong>.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aa03901deb64\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aa03901deb64\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2026\/08\/La-variable-de-Bash-sustituye-su-valor-por-el-resultado-de-un-comando.png\/public\" alt=\"Una variable de Bash obtiene parte de su valor mediante la sustituci&oacute;n de comandos\" class=\"wp-image-56188\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">En scripts antiguos, puedes encontrar comandos escritos entre acentos graves (<strong>ejemplo<\/strong>). Sin embargo, esta sintaxis ya no se recomienda porque dificulta el anidamiento de comandos.<\/p><h2 class=\"wp-block-heading\" id=\"h-ejemplos-de-variables-en-bash\">Ejemplos de variables en Bash<\/h2><p class=\"wp-block-paragraph\">Puedes combinar las variables de Bash con otros elementos de Bash para trabajar con datos din&aacute;micos y controlar el comportamiento de tus scripts.<\/p><p class=\"wp-block-paragraph\">Por ejemplo, puedes usarlas con operaciones aritm&eacute;ticas y sentencias <strong>if<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\ncount=3\nif (( count &gt; 2 )); then\n    echo \"Count is greater than 2\"\nfi<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aa03901e17a8\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aa03901e17a8\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2026\/08\/la-instruccion-if-en-Bash-variable-salida.png\/public\" alt=\"El terminal muestra el resultado de un script que combina una sentencia if con una variable de Bash\" class=\"wp-image-56189\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">La variable <strong>count<\/strong> almacena un n&uacute;mero y el condicional usa su valor para decidir si debe ejecutar el comando <strong>echo<\/strong>. As&iacute;, el script puede tomar decisiones en funci&oacute;n de los datos almacenados en una variable.<\/p><p class=\"wp-block-paragraph\">Las condiciones de una sentencia <strong>if<\/strong> tambi&eacute;n pueden escribirse entre dobles corchetes. Por ejemplo, este script muestra un mensaje si el valor de la variable termina en <strong>.txt<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\nfile=\"report.txt\"\nif [[ $file == *.txt ]]; then\n    echo \"It is a text file\"\nfi<\/pre><p class=\"wp-block-paragraph\">En las asignaciones de variables <strong>no debe haber espacios<\/strong> a ambos lados del signo igual. En cambio, debes dejar espacios despu&eacute;s de <strong>[[<\/strong> y antes de <strong>]]<\/strong> en las expresiones condicionales. Confundir ambas reglas puede provocar errores de sintaxis.<\/p><p class=\"wp-block-paragraph\">Adem&aacute;s de utilizarlas con sentencias <strong>if<\/strong>, tambi&eacute;n puedes almacenar arrays de Bash en variables y recorrer f&aacute;cilmente sus elementos dentro de un script. Por ejemplo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\nnums=(1 2 3)\n\nfor n in \"${nums[@]}\"; do\n    echo \"$n\"\ndone<\/pre><p class=\"wp-block-paragraph\">Este script define un array de n&uacute;meros, recorre sus elementos mediante un <a href=\"\/ar\/tutoriales\/bash-for-loop-guia-ejemplos\/\">bucle for<\/a> y pasa cada uno al comando <strong>echo<\/strong>.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aa03901e40e5\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aa03901e40e5\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2026\/08\/array-de-variables-de-bash.png\/public\" alt=\"El terminal muestra el resultado de un script que recorre los elementos de un array de Bash\" class=\"wp-image-56190\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">Al trabajar con arrays, las llaves permiten delimitar correctamente el nombre de la variable en expresiones como <strong>${nums[@]}<\/strong>. Tambi&eacute;n resultan &uacute;tiles cuando quieres a&ntilde;adir texto inmediatamente despu&eacute;s del valor de una variable, como en este ejemplo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">dirpath=\"\/var\/www\/site\"\n\nbackup=\"${dirpath}_backup\"<\/pre><p class=\"wp-block-paragraph\">Sin las llaves, Bash interpretar&iacute;a <strong>$dirpath_backup<\/strong> como una variable llamada <strong>dirpath_backup<\/strong>, en lugar de combinar el valor de <strong>dirpath<\/strong> con <strong>_backup<\/strong> para obtener <strong>\/var\/www\/site_backup<\/strong>.<\/p><p class=\"wp-block-paragraph\">Otro error habitual es no escribir las expansiones de variables entre comillas cuando su valor debe tratarse como un &uacute;nico argumento. La forma recomendada en este caso ser&iacute;a:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">var=\"Value of the var\"\n\necho \"$var\"<\/pre><p class=\"wp-block-paragraph\">Si usas <strong>$var<\/strong> sin comillas en un contexto en el que Bash realiza separaci&oacute;n de palabras, un valor con espacios puede convertirse en varios argumentos. Por ejemplo, echo <strong>$var<\/strong> puede recibir <strong>Value<\/strong>, <strong>of<\/strong>, <strong>the<\/strong> y <strong>var<\/strong> como argumentos independientes, mientras que echo <strong>&ldquo;$var&rdquo;<\/strong> recibe el valor completo como un &uacute;nico argumento.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-crear-scripts-con-variables-en-bash\">C&oacute;mo crear scripts con variables en Bash<\/h2><p class=\"wp-block-paragraph\">Las variables de Bash son fundamentales para crear scripts flexibles y automatizados. Puedes almacenar en ellas nombres de archivos, datos introducidos por el usuario o listas de elementos y usar esos valores para automatizar tareas de administraci&oacute;n de servidores Linux.<\/p><p class=\"wp-block-paragraph\">Por ejemplo, puedes guardar la ruta de un directorio en una variable, recorrer todos los archivos que contiene y realizar una acci&oacute;n con cada uno, como moverlos, cambiarles el nombre o crear un backup.<\/p><p class=\"wp-block-paragraph\">Tambi&eacute;n puedes guardar los datos introducidos por el usuario en una variable y tomar decisiones en funci&oacute;n de ellos, como elegir qu&eacute; servicio reiniciar o qu&eacute; archivo procesar.<\/p><p class=\"wp-block-paragraph\">Las variables tambi&eacute;n pueden almacenar arrays, lo que permite trabajar con varios elementos sin tener que escribir cada valor directamente en el c&oacute;digo.<\/p><p class=\"wp-block-paragraph\">Adem&aacute;s, puedes combinar los valores de varias variables o a&ntilde;adirles cadenas de texto, algo &uacute;til al trabajar con datos din&aacute;micos como los resultados de comandos. Para obtener m&aacute;s informaci&oacute;n, consulta nuestra gu&iacute;a sobre c&oacute;mo <a href=\"\/tutorials\/bash-concatenate-strings\/\">concatenar cadenas en Bash<\/a>.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/ar\/servidor-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-29287\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Las variables de Bash son espacios de almacenamiento con un nombre asociado que guardan valores para poder consultarlos y manipularlos desde la l&iacute;nea de comandos de Linux. En los scripts de shell, permiten trabajar con informaci&oacute;n din&aacute;mica, como rutas de archivos, ajustes de configuraci&oacute;n o resultados de comandos, sin tener que escribir esos datos directamente [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/ar\/tutoriales\/variables-en-bash\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":190,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Variables en Bash: qu\u00e9 son, tipos y c\u00f3mo usarlas","rank_math_description":"Aprende qu\u00e9 son las variables en Bash, qu\u00e9 tipos existen y c\u00f3mo usarlas en tus scripts para almacenar datos, gestionar valores y automatizar tareas.","rank_math_focus_keyword":"variables en bash","footnotes":""},"categories":[14501],"tags":[],"class_list":["post-35609","post","type-post","status-publish","format-standard","hentry","category-vps"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/bash-variables\/","default":1},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/variables-en-bash","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/bash-variables\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/bash-variables\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/bash-variables\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/bash-variables\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/bash-variables\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/bash-variables\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/bash-variables\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/variables-en-bash","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/variables-en-bash","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/variables-en-bash","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/posts\/35609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/users\/190"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/comments?post=35609"}],"version-history":[{"count":11,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/posts\/35609\/revisions"}],"predecessor-version":[{"id":47980,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/posts\/35609\/revisions\/47980"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/media?parent=35609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/categories?post=35609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/tags?post=35609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}