lunes, 20 de agosto de 2012

Mostrar todos los usuarios que su identificador

Este shell fue donado por:  M.Sc. (c). Lic. Luis Carlos Vargas Cogollo


Con una secuencia de Comandos Encadenados  por Pipes, mostrar todos los usuarios que su identificador (UID) sea superior a 10 e inferior a 1024. 

   solucion

Este problema lo resolvemos a trave de  Comandos Encadenado
s

cat /etc/passwd | sort | awk -F':' '$3 > 10 && $3 < 1024 {printf "Login: " $1 " - " "UId: " $3 "\n"}'

domingo, 19 de agosto de 2012

Mayor de 3 numeros shell script (Modo eficiente)


Se debe ejecutar con el comando bash no con sh.

#!/bin/bash

echo "Digite numero 1"
read a

echo "Digite numero 2"
read b

echo "Digite numero 3"
read c

numeros=( $a $b $c )
mayor=${numeros[0]}
for i in ${numeros[*]};
do
if [ $mayor -lt $i ];
   then
   mayor=$i
   fi
done

zenity --info --text "El mayor es $mayor"

 

exit 0

Generar piramide con shell script

Se debe ejecutar con el comando bash no con sh.


#!/bin/bash
echo "digite tamaño de la piramide (solo digitos)!"
num=`zenity --entry --text "Digite tamaño del triangulo (Solo digitos)" --title "Triangulo"`
b=$num

for ((i=1;i<=num;i++,b--))
    do

    for ((j=1; j<=b;j++))
        do
        cadena="$cadena  "
        done
 
for ((k=1; k<=i;k++))
        do
        cadena="$cadena  "
        cadena="$cadena$i"
        done
    cadena="$cadena\n"

    done
echo $cadena

zenity --info --text "$cadena"
exit 0

-----------------------------------------------------------------------------------------------
Salida del shell con tamaño 6

Mayor y menor de 3 numeros shell script


#!/bin/bash

echo "numero a"
read n1
echo "numero b"
read n2
echo "numero c"
read n3

#-----------------mayor-----------------------

if [ $n1 -gt $n2 ] && [ $n1 -gt $n3 ];
  then
   zenity --info --text " el mayor es: $n1"
  fi

if [ $n2 -gt $n1 ] && [ $n2 -gt $n3 ];
  then
   zenity --info --text " el mayor es: $n2"
  fi

if [ $n3 -gt $n1 ] && [ $n3 -gt $n2 ];
  then
   zenity --info --text " el mayor es: $n3"
  fi

#-----------------menor-----------------------

if [ $n1 -lt $n2 ] && [ $n1 -lt $n3 ];
  then
   zenity --info --text " el menor es: $n1"
  fi

if [ $n2 -lt $n1 ] && [ $n2 -lt $n3 ];
  then
   zenity --info --text " el menor es: $n2"
  fi

if [ $n3 -lt $n1 ] && [ $n3 -lt $n2 ];
  then
   zenity --info --text " el menor es: $n3"
  fi


exit 0

Comparacion de 2 cadenas en shell script


#!/bin/bash

echo "Digite la primera cadena"
read cad_a

echo "Digite la segunda cadena"
read cad_b

if [ "$cad_a" = "$cad_b" ];
   then
   zenity --info --text "Las cadenas ($cad_a) y ($cad_b) son iguales"
   else
   zenity --info --text "Las cadenas ($cad_a) y ($cad_b)  son distintas"
   fi
exit 0

Saber si una palabra es palindrome en shell script

Para ejecutar este codigo lo hacen con el comando bash no lo ejecuten con sh.

#!/bin/bash

palabra=`zenity --entry --text="Digite palabra a verificar!" --title="palindrome"`
b=${#palabra}
echo $b
for ((i=1; i<=`expr ${#palabra} / 2`;i++,b--))
do

if [ "`expr substr "$palabra" $i 1`" == "`expr substr "$palabra" $b 1`"  ];
   then

   if [ $i -eq `expr ${#palabra} / 2` ];
     then
     zenity --info --text="El parametro $palabra\n es palindrome"
   
     fi

   else
   zenity --info --text="El parametro $palabra\n no es palindrome"
   break
   fi

done

exit 0