Bash: como facer un script executable

Quero pouco a pouco ir poñendo artigos BaterBen, teño suficiente material para ensinarche aos poucos consellos, facer guións e moito máis, para que as nosas tarefas diarias sexan automáticas, polo que obviamente aforraranos moito tempo 😀

Agora amosareiche os conceptos básicos, o que sempre necesitarás saber, e iso axudarame ao resto dos titoriais 😉

Como facer un script .sh?

Sinxelo ... moi sinxelo 😀

1. Abra un terminal, nel escriba o seguinte e prema [Entrar]:

cd $HOME && touch script.sh && chmod +x script.sh

Isto será suficiente para crear un ficheiro para eles guión.sh no seu cartafol persoal.

2. No terminal pon o seguinte:

cd $HOME && echo '#!/bin/bash' > script.sh && echo '# -*- ENCODING: UTF-8 -*-' >> script.sh

3. Listo, tes o teu guión listo 😀

Se o abrimos, teremos algo así:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-

Despois desa segunda liña, as instrucións escríbense a partir de aí.

Por exemplo, dirémosche que nos mostres nun terminal «<° Linux é o mellor»😀

Teríamos o guión do seguinte xeito:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "<° Linux es lo mejor"
exit

Como executar ou probar un script .sh?

1. Debemos ir ao cartafol onde está o script, no exemplo anterior sería o noso cartafol persoal, polo que abrimos un terminal, nel escribimos o seguinte e prememos [Entrar]:

cd $HOME

2. Agora executámolo poñendo un punto e unha barra (seguido) e seguido do nome do guión, é dicir:

./script.sh

E o bingo, xa o temos 😀

Faino e verás ...

Agora un detalle importante, ao final sempre deberían poñer «saír«

E ben, nada máis que engadir, só agarda futuros tutoriais, aquí aprenderás bater HAHA.

lembranzas


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

57 comentarios, deixa os teus

Deixa o teu comentario

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados con *

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.

  1.   oscar dixo

    Grazas amigo, sempre tiven curiosidade por facer un script.sh, agora toca aprender, estarei esperando os próximos titoriais.

    1.    KZKG ^ Gaara <"Linux dixo

      Nah, un pracer jeje 😀
      Xa verás ... aos poucos irei poñendo tutoriais de Bash, para ver se alguén se emociona, aprende e todos melloramos HAHA.

      lembranzas

      1.    jose dixo

        Ola, necesitaría a túa axuda se me podes axudar con algúns guións que teño pegados e que teño que facer por un tema, encantaríame poñerme en contacto comigo.
        Moitas grazas por adiantado

  2.   marrón dixo

    Ah mortal !! estupendo 😉

    1.    KZKG ^ Gaara <"Linux dixo

      Grazas 😀
      Lembre que as queixas ou suxestións sempre serán ben recibidas 😉

  3.   taregón dixo

    Gustoume a publicación, sempre que necesito un encabezado de guión, empezo a navegar só para atopar a liña: "#! / Bin / bash" na cabeceira (estou moi esquecido). Agora con esta contribución podo facela anotar e só copiar e pegar 😀

    1.    KZKG ^ Gaara <"Linux dixo

      Lembre que é / bash e / sh ... é diferente jaja, unha vez pasei 2 días loitando cun guión que non funcionou para min como debería, e foi porque puxen sh no canto de bash 😀

      Calquera dúbida que nos digas.
      lembranzas

  4.   xfraniux dixo

    Jaajajajajaja e isto é o máis sinxelo, tamén podes abrir gedit ou calquera editor e copiar:

    #!/bin/bash
    # -*- ENCODING: UTF-8 -*-
    echo “<° Linux es lo mejor”
    exit

    E entón démoslle permisos de execución ...

    moi bos datos .. saúdos

    1.    KZKG ^ Gaara <"Linux dixo

      hehe si, iso podería facerse así, pero non sei ... pensei que sería máis sinxelo facer unha copia / pegado de dúas liñas (que pode ser unha) e xa está, listo o guión con permisos de execución e a cabeceira 😀

    2.    Bertoloso dixo

      Ola. Deben gardarse sempre os scripts como ficheiro .sh?

      En Windows o seu parecido serían os ficheiros .bat. E en canto á súa escrita, parecen un pouco máis sinxelos.

  5.   Lucas Matías dixo

    Moi bo che

    1.    KZKG ^ Gaara <"Linux dixo

      Grazas 😀

  6.   arturo molina dixo

    Agardo a seguinte publicación e polo momento tome nota.

    1.    KZKG ^ Gaara <"Linux dixo

      A
      Algunha suxestión, guión que queiras que faga ou algo así? 😀

  7.   Coraxe dixo

    ¿É este o que non sabe programar? Aínda que é fácil, é programar

    1.    KZKG ^ Gaara <"Linux dixo

      HAHAHA veña ... estás animado? ... Aprende un pouco de Bash, verás o xenial que é, non fai falta saber programar, nin moito menos 😀

      Qué dis?

      1.    Coraxe dixo

        Fareino, hoxe non estou para iso

  8.   Anónimo dixo

    De feito, se os scripts se crean regularmente, a tarefa en si tamén podería automatizarse cun script como o seguinte (só se copia en $ home / bin / e dáselle permisos de execución)


    #!/bin/sh
    # nuevoscript
    if [ $# -eq 0]; then
    DEST=$HOME
    SNAME=script.sh
    elif [ $# -eq 1]; then
    DEST=.
    SNAME="$1"
    else
    echo "Parámetros incorrectos"
    exit -1
    fi
    echo -e '#!/bin/bash\n# -*- ENCODING: UTF-8 -*-' > "$DEST/$SNAME" && \
    chmod +x "$DEST/$SNAME"
    echo "Creado el script $DEST/$SNAME"
    exit 0

    Deste xeito, se corre novo guión sen parámetros, crea $ home / script.sh, pero se funciona novo guión outro guión, crear ./outro manuscrito

  9.   Ramsés dixo

    Ola amigo, gustaríame saber como podo crear unha execución automática para unha sdcard e que o lea o meu teléfono con tan Android e que cando se execute comece abd.exe máis o comando bugreport> bugreport.txt

    1.    KZKG ^ Gaara dixo

      Nin idea amigo ... Nunca usei Android.

  10.   Neo61 dixo

    Grazas Gaara, quería atopar un lugar onde me puidesen ensinar algúns guións, creo que nun correo electrónico mencioneiche isto, que realmente é algo que teño que aprender. Seguín os pasos que detallas e todo é perfecto pero non funciona, entendo isto:

    ./script.sh: liña 5: EOF inesperado mentres buscaba unha coincidencia `» '
    ./script.sh: liña 9: erro sintáctico: non se esperaba o final do ficheiro

    Explícame cal é a miña chapuza

    1.    KZKG ^ Gaara dixo

      A miña culpa é que WordPress cambia algúns detalles, mire de novo o código da publicación e póñao así no seu guión.
      O que pasa é que:

      "Asd"

      Non é o mesmo que:
      "asd"

  11.   Neo61 dixo

    Non o entendo, aínda o vexo igual. Onde está o cambio? ¿Poderías explicarme mellor? Agora, cando lle das a execución, esta liña sae:
    ./script.sh: liña 5: °: O ficheiro ou directorio non existe

    1.    KZKG ^ Gaara dixo

      Pásame o script que estás executando, pon o código aquí: http://paste.desdelinux.net
      Mira a publicación de novo, é que esquecera facer clic no botón Actualizar 😀

  12.   Neo61 dixo

    Ola compañeiro:
    Vouche dicir que estaba a ver o script conkyrc que fixeches para o teu conky 2010 e si, é certo, o símbolo do disco pertence a unha fonte chamada Poky pero non vén por defecto en libreOffice en Ubuntu 12.04, sería estea ben, se tes esta fonte, dime de onde a podo descargar (algo un pouco difícil, de verdade), unha cousa que me decatei é que cando se poñen as letras destes símbolos e a fonte non existe no sistema, logo pon a letra, non o símbolo. É lóxico, xa me estou a facer unha idea de como funciona todo, pero necesito que alguén me explique as cousas para entendelo mellor, todo o que fago é por dedución e nunca dei ningunha programación, non era a informática o que estudei E tamén, era outra vez, teño a informática como hobby e o bo é que estou a traballar nunha das súas ramas, todo o que aprendín ten fun autodidacta, por iso o meu interese por alguén que, incluso aos poucos, me guía. aquí tamén está o guión do meu conky e expliquei o que non teño:

    Mira, cando intento inserir outro disco duro sigo obtendo o mesmo porque dá o mesmo valor de temperatura. Non teño as características da CPU no sistema, sae (NULL) en negra, cando intento inserir o calendario que colocaches no Conky que tanias no 2010 está desorganizado e amplía a barra conky. Mire para ver todas as melloras que pode facer. Gústame co ancho que teño e que o teu calendario se adapte a ese ancho e que saia todo o que che dixen que non aparece, aquí vai:

    http://paste.desdelinux.net/4552

    –Inserta o código na nosa pega para que os comentarios non sexan tan extensos–

  13.   GONZALO dixo

    o certo é que a túa contribución é lamentable

  14.   Edgar dixo

    Ola, facilitaches a miña vida con este guión. Moitas grazas por me gustaría saber se me podes enviar un correo electrónico onde o describas xa que son novo en programación.
    grazas

    1.    KZKG ^ Gaara dixo

      Ola,
      Mellor non fun quen de describir / explicar estas liñas de código, que non entendiches explicar doutro xeito?

      Do mesmo xeito, se tes dúbidas, sempre podes preguntar no noso foro: forum.desdelinux.net

      Saúdos 😀

  15.   Cesar dixo

    Unha boa contribución pero poderías redondela ... Necesito un guión para un sai. É dicir, cando Sai se decata de que está en batería e ten 20 minutos para apagarse, envía un sinal a un dispositivo e ten que executar o script para apagar algúns servidores. Non sei se me expliquei ben ... Valdria con poñer no teu guión «apagado -h» ??

    Grazas!

  16.   Xesús Israel Perales Martínez dixo

    Algo máis que engadir á miña carpeta de modelos: B

  17.   Eduardo dixo

    ¿Alguén me podería axudar? Necesito un script para Ubuntu que se pechamos o navegador Chrome, o abramos de novo

    Grazas de antemán

  18.   Edo dixo

    Necesito un script que só executalo sobrescriba a información dun ficheiro con outro texto, alguén sabe como é?

    1.    Edo dixo

      Xa vin que por riba din como facelo

  19.   Dario dixo

    Moi ben, excelente para os meus netos.
    Mil grazas. »Así como terías moita xente nova, actuar como profesores ... sería marabilloso.

  20.   PC romano dixo

    Sinxelo e funcional, como debería ser.

    Grazas por compartir.

    Saúdos.

  21.   Hernán Jaramillo dixo

    Grazas pola axuda. Foi útil, moi boa explicación.

  22.   vicene dixo

    Grazas que me serviu. Graciñas

  23.   Gamerz dixo

    Sinxelo e eficaz. Gran titorial para principiantes 🙂

  24.   Luís Carlos dixo

    Ola, sei moi pouco sobre guións e non sei se estou confundindo conceptos pero o que estou a intentar é na seguinte páxina web:
    http://beginlinux.com/blog/2010/03/iptables-with-network-card-aliases/

    A cuestión é que realmente non entendo como iniciar este código ou se isto substitúe aos IPTABLES. E se o substitúe como sería para que comece automaticamente co SO.

    grazas

  25.   Cris dixo

    Fantástico Gaara !!!

    Comecei a facer os deberes como explicaches e funcionou !! Grazas por tomarse o tempo e compartir o seu coñecemento para saír da escuridade cos ignorantes.

    A

  26.   León dixo

    Ola, teño algunha dúbida para facer un script que crea un usuario, ¿poderíasme axudar?

  27.   novo dixo

    Ola, teño unha pregunta cun ficheiro .sh
    tes algunha maneira diso
    Púxenme en contacto contigo para ver se o estou facendo non?

    #! / system / bin / sh
    montar -o remontar, rw /
    mkdir /mnt/local/Android/data/org.xbmc.xbmc/files/.xbmc
    ln -s /mnt/local/Android/data/org.xbmc.xbmc/files/.xbmc /.xbmc
    montar -o remontar, ro /

    , Execútoo manualmente no terminal e se funciona, pero cando quero que se execute o ficheiro non o quere.

  28.   louis dixo

    Atopei este en vivaolinux.com.br, é xenial

    #! / bin / bash

    Baseado en Gera.sh - Gera cabeçalho para guións

    Escrito por: Sandro Marcell P. Barbosa (Boa Vista - Roraima)

    E-mail: sandro_marcell@yahoo.com.br

    Slackware GNU / Linux 10.1.0

    Exemplo de uso: script_name my_script

    Tamén pode especificar a extensión, conformidade ou intérprete.

    Ex.: Nome_script backup.sh para o intérprete 'sh'

    ou nome_script backup.tcl para o intérprete 'tcl' e tamén para o día.

    Definindo o intérprete pode (substituír por outro!):

    INTERPRETER = »#! / Bin / sh»

    Contido da cabeceira (cambia como queiras):

    INFO = »##»
    Creador = »## Escrito por:»
    EMAIL = »## Correo electrónico: you@correo.com»
    DISTRO = »##»

    Comprobando se o usuario especificou o nome do script:

    se [$ # -eq 0]; entón
    echo ">>> Uso: $ (nome base $ 0)"
    saír
    fi
    se [$ # -ge 2]; entón
    echo "O nome con espazos non é válido!"
    saír
    fi

    ¿Pode o usuario escribir no directorio actual?

    se [! -w $ PWD]; entón
    echo "Non hai permiso para escribir o directorio actual!"
    saír
    fi

    E se hai outro script co mesmo nome no directorio actual?

    se [-f $ 1]; entón
    echo "Xa hai un script co mesmo nome neste directorio!"
    saír
    fi

    Corpo do guión:

    (
    gato << FIN
    $ INTERPRETER

    $ INFO
    $ CREADOR
    $ CORREO ELECTRÓNICO
    $ DISTRO

    Agora engade comandos nas liñas seguintes =)

    Data de creación deste script: $ (data «+% a% d /% m /% Y») en $ (data «+% T»)

    FIN
    )> $ 1

    Configuración do permiso de execución:

    se [-f $ 1]; entón
    chmod + x $ 1 2> / dev / stdout
    echo "Script $ 1 creado e permitido executalo!"
    fi

    Data de creación deste guión: 29/01/2013 19:45:00

    1.    debianistrowler dixo

      Estupendo, funciona perfectamente !!!

  29.   Vicente dixo

    Moi bo tutorial, sinxelo e axudoume moito, grazas

  30.   calichi dixo

    Estimado KZKG, son un novato, pero estou interesado en aprender.
    Tes outro scrip. Ou de súpeto no lugar onde traballo quero abrir un compilado e non o podo ver.
    Calquera idea.

  31.   calichi dixo

    Necesito axuda cun guión. Está compilado.

  32.   legal9 dixo

    Entendín sobre o bash, pero se quero facer un alias automatizado non sae

  33.   angiesarita dixo

    Moitas grazas pola túa axuda amigo.

    Gustaríame saber se me podes facer un gran favor, necesito crear un script que me axude a crear un .sum nun momento determinado pero non sei como parametrizalo. Quizais poida axudarme con algúns consellos. Grazas e estarei atento se me podes axudar.

    lembranzas

  34.   José dixo

    Ola, boas tardes, mira, estou a facer un traballo en lex, así que gustaríame se me podes axudar cun script co que podo executar o ficheiro lex, o que xera lex (lex.yy.c) e o ficheiro de entrada de datos .

    Moitas grazas

  35.   wilmer ron dixo

    berros grazas doc !!! Son novo no guión, moitas grazas, saúdos, estarei pendente coa túa nova titoría !!!!

  36.   Karen vega dixo

    Ola !!!

    Moitas grazas polas túas contribucións, estou empezando a entrar en unix e é raro que alguén explique este universo de código dun xeito tan sinxelo. Gustaríame preguntarche se co teu procedemento podo facer un script que me axude a atopar n número de ficheiros que viven no mesmo camiño e que os copie noutro cartafol ... alguén me dixo que podo almacenar o camiño e o nome os meus ficheiros, pero non me queda claro como facelo. Estou atento.

    Saúdos!

  37.   eibar amaya dixo

    Ola, teño un VPS, pero eu teño axuda nalgunhas cousas. Orita eu mesmo. Estou interesado en como crear un script ou algo así para facer unha copia de seguridade de todo o que está dentro do meu cartafol / root e esa copia de seguridade execútase cada 1 hora poderías axudar niso e agradeceríache moito niso

    Déixovos o meu facebook se me queredes axudar necesito moita axuda 🙂

  38.   Jorge Rodríguez dixo

    créame un para facer ping e supervisar certos equipos de rede da empresa
    pero fíxeno sinxelo

    toque red.sh && chmod + x red.sh
    botou fóra # # -- CODIFICACIÓN: UTF-8 -- '>> red.sh
    echo 'ping 10.50.0.125 -w 5' >> red.sh
    echo 'ping 10.50.0.80 -w 5' >> red.sh

    execútalo ./red.sh e ben

  39.   Guillermo dixo

    Estimado, necesito crear un script de instalación automática. Estou disposto a pagar por un traballo ben feito. Quen estea interesado, envíame un correo electrónico a carranzalh@gmail.com. Grazas

  40.   sary dixo

    chupan a miña polla XD

  41.   hdexz dixo

    Bos días amigo, poderíasme axudar con algo
    Necesito facer unha copia de seguridade con Linux da empresa, xa que é máis seguro para que os virus non o capturen pero non sei como facelos
    Necesito crear un script que empaquete os ficheiros e os envíe a un ftp

    Agradeceríame escribir de antemán ao meu correo electrónico

    cesarloscor@gmail.com