es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo evitar la ejecución de comandos al agregar líneas a un archivo.

Estoy tratando de guardar el contenido del script en un archivo usando la línea de comando, pero noté que cuando el comando “tee” detecta comandos de Linux como $(/usr/bin/id -u), ejecuta los comandos en lugar de guardar las líneas tal como están. ¿Cómo evitar la ejecución de los comandos y guardar el texto exactamente como lo ingresé?

$tee -a test.sh << EOF 
    if [[ $(/usr/bin/id -u) -ne 0 ]]; then
        echo You are not running as the root user.
        exit 1;
    fi;
    EOF
    if [[ 502 -ne 0 ]]; then
        echo You are not running as the root user. 
        exit 1;
    fi;

El script completo contiene muchas más líneas, pero elegí /usr/bin/id -u como muestra.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para evitar la ejecución de comandos y guardar el texto tal cual, se pueden utilizar comillas simples en lugar de comillas dobles. Esto evitará que la consola expanda las variables o ejecute comandos dentro de las comillas. Aquí está una versión actualizada del comando:

    tee -a test.sh << 'EOF'
    if [[ $(/usr/bin/id -u) -ne 0 ]]; then
        echo No estás ejecutando el usuario root.
        exit 1;
    fi;
    EOF
    

    El uso de comillas simples asegurará que el texto se guarde exactamente como aparece, sin ninguna modificación o expansión por parte de la consola.

Comments are closed.