A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Curso de Programaci贸n en Bash Shell

Curso de Programaci贸n en Bash Shell

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Sustituci贸n de Comandos en variables

9/43
Recursos

Para la sustituci贸n de comandos es importante tener en cuenta que el resultado servir谩 para realizar otras tareas de otras sentencias de nuestro programa.

Las dos maneras de hacerlo:

  • Usando el backtick caracter. (`)
  • Usando el signo de d贸lar con el formato $(comando)

Aportes 38

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

una cosa no trivial.
es que cuando se definen las variables no debe haber espacios alrededor del signo igual

asi funciona:

ubicacionActual=`pwd`
infoKernel=$(uname -a)

asi no:

ubicacionActual = `pwd`
 infoKernel = $(uname -a)

El manejo de vim es ideal para dedicarle un curso

Tips hasta ahora de Vim (presionando antes la tecla Esc):

  • i = insertar texto
  • :q = salir sin guardar
    -:q! = forzar salida
  • :w = guardar
    -:wq = guardar y salir
    -u = Ctrl + z
    -yy = copiar una sola linea
    -p = pegar
    -dd = eliminar una linea
    -(numero) + dd = borrar el numero de lineas escrito
    -(numero) + yy = copiar el numero de lineas escrito
    -Ctrl + v = seleccionar texto

Ya entiendo por que funciona el docker ps $(docker ps -qa)

Por favor deje de usar la palabra tema para cada cosa

Para borrar todo debajo del cursor
esc + d + shift(sin soltar) + g

y si borr贸 todo en el archivo como primera acci贸n, con que intenci贸n hizo la copia ? jajajajaj 馃し鈥嶁檪锔

Bueno yo tuve problema sacando el backtick caracter. (`)
Para los que tengan el mismo problema se saca con el ALT+96

La sintaxis $() es el est谩ndar POSIX, y soportado por BASH, Korn Shell, ash, Dash, Zsh, Busybox, etc.
El uso de backticks es legado y no deber铆a ser utilizado, sigue ah铆 solo para compatibilidad con versiones muy viejas de Sh.

Comparto cheat sheet de vim

cheat sheet de vim

es muy practico al momento de estar usando vim y se aprende mas r谩pidos los comandos como los basicos:

ejemplo

:w 鈥 Permite guardar el fichero.
:q 鈥 Salir de Vim. Si el fichero ha sido modificado pero no se ha guardado, nos advertir谩 y no podremos salir de Vim usando este comando.
:q! 鈥 Salir de Vim, descartando posibles cambios no guardados que se hayan realizado en el fichero.
:wq 鈥 Hace el guardado del archivo y despu茅s sale de Vim.

Para ejecutar comandos en el script se usa backtics (``) o $()

Uno de los errores m谩s comunes es tener errores al escribir las variables cuando las llamas, tengas cuidado con eso porque ese fue el error por el cual no funcionaba correctamente mi script. Saludos

esc + (cantidad de lineas a borrar)+dd = borrado masivo

# ! /bin/bash
# Programa para revisar como ejecutar comados dentro de un programa y almacenar en una variable para su posterior utilizaci贸n 
# Autor: Martin Davila 

ubicacionActual=`pwd`
infoKernel=$(uname -a)

echo "La ubicaci贸n actual es la siguiente: $ubicacionActual"
echo "Informaci贸n del Kernel: $infoKernel"```

Por si alguien m谩s se pregunta qu茅 es mejor, si usar

`comando` o $(comando)

https://mywiki.wooledge.org/BashFAQ/082

Tambi茅n pueden guardar cambios en vim con :x, para no usar el :wq

Los comando del VIM ha sido lo mejor. Son muy 煤tiles para programar en BASH

para los que no sepan que es el sucre, fue la m贸dena oficial del Ecuador hasta el a帽o 2000, como el profe es de Quito imagino que se acostumbro jeje pero todo bien, que buena explicaci贸n鈥 ha soy de Ecuador por cierto :V

Excelente curso

Este script crea un archivo de backup tomando la fecha en formato h-m-s

!/bin/bash

Sustitucion de comandos por varibales

ubicacionActual=pwd
infokernel=$(uname -a)
horaCreacion=date "+%H%M%S"
archivoBK=鈥渂k_${horaCreacion}鈥

echo "La ubicacion es: $ubicacionActual"
echo "La info del kernel es: $infokernel"
echo "La hora actual es:$horaCreacion"
touch $archivoBK & echo 鈥淪e creo el archivo:$archivoBK鈥

En vez de:

<d> <d> <d> [...] # Para eliminar lineas

Intente:

<v> + {h/j/k/l} + <d>
# 1) <v> para entrar en modo selecci贸n
# 2) {h/j/k/l}  para seleccionar el texto deseado
# 2) <d> una vez seleccionado el texto, eliminarlo.

Tambien para eliminar desde donde estan hasta el final de la linea de codigo Y ademas les da el modo 鈥渋nsert鈥, es decir para que ya empiecen a escribir, es:

1.- Estar en modo 鈥渘ormal鈥 (precionando 鈥淓sc鈥)
2.- Control + c (Ctrl + c)
3.- Escribir

Si quieren resaltar alguna palabra o texto pueden hacer lo siguiente:
-> bold=$(tput bold) y en el texto que quieran resaltar ponen ${bold}.

Soy el unico que se le ejecuta primero el pwd y luego el mensaje de la ubicacion?

comienza
/home/anthony/shellCourse
La ubicacion actual es:
info del kernel: Linux DESKTOP-UJ7HJGI 4.4.0-17134-Microsoft #706-Microsoft Mon Apr 01 18:13:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux```

Si alguien tiene problemas para sacar la comillita esa (backtick)鈥 a m铆 me funcion贸 con alt+96. Saludos!

Existe algun ide mas maniobrable para progamar bash?

#!/usr/bin/env bash
#lec_5_file.sh
echo "Location pwd:`pwd`" #backtick character to get the result of executing a command
echo "kernel uname -a: $(uname -a)" #similar
jose@ITEM-S84790:~/bashScripting$ ./5_substitucion.sh
Current location:

/home/jose/bashScripting

Kernel info:

Linux ITEM-S84790 4.4.0-17134-Microsoft #706-Microsoft Mon Apr 01 18:13:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux

genial

Listo

 # !/bim/bash/
 # Programa para sunstituir los comandas en variables
 ubicacionActual=`pwd`
 infoKernel=$(uname -a)
 infoKernel1=$(uname -r)
 infoKernel2=$(uname -mrs)

 echo "Estoy ubicado actualmente en la carpeta: $ubicacionActual"
 echo
 echo "Mi version de Linux es $infoKernel"
 echo
 echo "Mi version de Linux es $infoKernel1"
 echo
 echo "Mi version de Linux es $infoKernel2"
#! /bin/bash

current_location=`pwd`
kernel_info=$(uname -a)

echo "The current location is: $current_location"
echo "The kernel info is: $kernel_info"

Esta clase me record贸 mucho a los alias de la terminal

Excelente隆隆隆隆隆

actualUbiction=pwd
^-- SC2006: Use $(鈥) instead of deprecated ..
shellcheck error.

by convention
actualUbication=$(pwd)
nice