Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - hervasiop12345

#1
Programación C/C++ / Tabular salida en C
20 Octubre 2013, 22:20 PM
Hola a todos.

He implementado una orden para un intérprete de comandos que muestra los procesos en ejecución. La cuestión es que quiero que la salida aparezca tabulada pero no lo consigo, unas veces sale bien y otras mal. Primero imprimo las columnas y luego debajo ya mientras recorro la lista de procesos imprimo con la misma separación usando \t. ¿Alguna función en C para tabular salida? uso printf  pero nada.

Antes de imprimir hago fflush(stdout) para limpiar por si acaso pero no sirve de nada.

Gracias adelantadas. Un saludo
#2
GNU/Linux / No arranca fedora
18 Febrero 2012, 15:26 PM
Buenas a todos. Tengo Fedora 15 en una máquina virtual. Debido a alguna modificación, de la noche a la mañana me arranca directamente en rescue mode. He probado a usar distintos comandos como telinit, systemctl para intentar acceder al modo gráfico pero se producen errores. Espero vuestras sugerencias para poder repararlo cuanto antes.

Gracias adelantadas
#3
Hola a todos. Necesito parar un bucle al encontrar un caracter especial pero no lo consigo. Parece una pregunta trivial pero a más de uno seguro que le interesa. Gracias de antemano y dejo la forma que creía que funcionaria.

#include<string>
#include<iostream>
using namespace std;
int main(){
   string comando;   
   while(comando!="\n"){
      cin>>comando;
   }
   return 0;
}


#4
Hola. Tengo un script que te dice el primer y último parámetro pasado. El caso es que si quiero saber el último parámetro lo hago con un bucle y haciendo un shift hasta finalmente mostrar $1 que tendrá el valor del último parámetro. La pregunta es como listo de forma directa el valor sin recorrerlo? He pesando en que si $# tiene el número de parámetros  hacer como un $$# y mostrarlo pero no sé como. Espero su respuesta y dejo aquí la forma que tengo.

#!/bin/bash
if [ $# -eq 0 ]
then

 echo "No has pasado ningún parámetro"

elif [ $# -eq 1 ]
then
 echo "Sólo hay un parámetro que es $1"

else
 echo "El primer argumento es $1"
 for i in `seq 2 1 $#`
 do
   shift
 done
 echo "El último argumento es $1"
fi

#5
Hola. Acabo de terminar un script que recibe como parámetro una variable numérica entera y debe de hacer un monton del tamaño que le digamos. Ejemplo:
./monton 5
       *
     ***                    
    *****
   *******
  *********

El problema está en que quiero restarle a una variable que se llama distancia en cada iteración un caracter " " para que salga así de cuadrado. Ejecutar el script para entenderlo del todo y gracias.
Código (bash) [Seleccionar]

#!/bin/bash
echo $1 | grep -x -q "[0-9]\+"
num=$?
if [ \( $# != 1 \) ] || [ \( $num != 0 \) ]
then
 echo "Llama con un único argumento y que sea numérico"
 exit 1
fi

lineas=$1
control=1
char="*"
pintadas=0
j=1
espacio=" "

while [ $j -lt $lineas ]
do  
 distancia=$distancia$espacio  
 let j=j+1
done

while [ $pintadas -lt $lineas ]
do
 echo -n "$distancia"       #Esta es la variable a la que quiero restarle espacios
 for i in `seq 1 1 $control`
 do    
   echo -n "$char"
 done
 echo -e "\r"
 let control=control+2
 let pintadas=pintadas+1  
done

#6
Scripting / [Bash] Orden find se lia
2 Agosto 2011, 12:07 PM
Hola. Estoy utilizando la orden find para que muestre en el directorio actual los ficheros regulares cuyo nombre comience por ejemplo por g , es decir , le introduzco como parámetro al guión g*. Pero al hacer las pruebas me muestra únicamente un fichero. La llamada tiene que ser ./nombrescript letra*

find -maxdepth 1 -type f -name "$1"| cut -c 3- > tx1
#7
Hola a todos. Estoy intentando resolver un ejercicio de  un examen de la universidad y me las estoy viendo  negras y encima es una asignatura de introducción. Primero definimos un tipo para representar las horas. Nos dice expresamente que son 4 dígitos:

hora=TIPO<h1,h2,m1,m2:entero>

Ahora un tipo para definir un horario que se compone de la hora de salida y llegada de un bus desde Murcia hasta Alicante. Conclusión:Una tabla bidimensional de dos columnas y como nos dice un máximo de 100 buses 100 filas:

horario=TIPO TABLA [1..100,1..2] de hora

Hasta ahí perfecto. Ahora hay que hacer un procedimiento/acción que reciba el horario y una hora deseada como parámetros de entrada y en un parámetro de salida almacene la hora de salida de Murcia del autobús que llegue a Alicante a la hora más próxima a la que le hemos pasado. No sé si es sencillo pero al tener el tipo definido con 4 dígitos y la tabla estar compuesta igual no consigo hacerlo funcionar bien.

Espero sus respuestas/ideas. Muchas gracias a todos
#8
Hola. Quiero hacer un script que compare los ficheros de dos directorios. Para ello primero almaceno en dos arrays los ficheros de estos pero el problema está en que si el nombre de algún fichero tiene un espacio me lo guarda en dos posiciones del array. Dejo algo de código y gracias.
Código (bash) [Seleccionar]

#!/bin/bash

if test -d "$1"
then

 if test -d "$2"
 then

    dir1=(`cd $1; file * | grep -v "directory" | cut -f 1 -d ":"`)
    dir2=(`cd $2; file * | grep -v "directory" | cut -f 1 -d ":"`)

    for i in ${dir2[@]}
    do
      echo -e "$i\n"       #Aquí se observa lo dicho
    done    
 fi
fi
#9
Hola. Me gustaría que cuando haga read y pulse enter sin introducir nada , en case muestre una serie de cosas pero me da eror en la línea del if y es por esto. Pensé en usar \( -z $1 \) pero no parece funcionar. Espero vuestra respuesta y gracias.

Código (bash) [Seleccionar]

#!/bin/bash

function opciones {

 ca="-p"
 ca2="-u"
 ca3="-help"

 if [ \( $1 == $ca \) -o \( $1 == $ca2 \) -o \( $1 == $ca3 \) -o \( -z $1 \) ]
 then
   case "$1" in

     -p) echo "Opción -p"
        ;;
     -u) echo "Opción -u"
        ;;
     -help) echo "Opción -help"
           ;;
     "") echo "Mostrar todo"
           ;;        
   esac
 else
   echo "Opción Inválida"
 fi
}

if [ `cat /etc/passwd |grep $1 |wc -l` -ge 1 ]
then
 read option
 opciones $option
else
 echo "Usuario inexistente"
 exit 2
fi
#10
Hola. He descargado el juego dirt 3 pero el crack de skydrow hace saltar al antivirus y lo define como VMPROTECT.AAA. He leído en internet bastante y supuestamente es un falso positivo pero he hecho un análisis en virustotal.com de la muestra y me ha arrojado este resultado:

AhnLab-V3 - 2011.06.13.00 - 2011.06.13 - [color=red]Packed/Win32.Vmpbad [/color]
AntiVir - 7.11.9.167 - 2011.06.13 - [color=red]TR/Black.Gen2 [/color]
Antiy-AVL - 2.0.3.7 - 2011.06.13 - [color=red]Trojan/win32.agent.gen [/color]
Avast - 4.8.1351.0 - 2011.06.13 - -
Avast5 - 5.0.677.0 - 2011.06.13 - [color=red]Win32:PUP-gen [/color]
AVG - 10.0.0.1190 - 2011.06.13 - [color=red]Win32/Heur [/color]
BitDefender - 7.2 - 2011.06.13 - -
CAT-QuickHeal - 11.00 - 2011.06.13 - -
ClamAV - 0.97.0.0 - 2011.06.13 - -
Commtouch - 5.3.2.6 - 2011.06.13 - -
Comodo - 9053 - 2011.06.13 - [color=red]UnclassifiedMalware [/color]
DrWeb - 5.0.2.03300 - 2011.06.13 - -
Emsisoft - 5.1.0.8 - 2011.06.13 - [color=red]Riskware.Crack!IK [/color]
eSafe - 7.0.17.0 - 2011.06.13 - -
eTrust-Vet - 36.1.8383 - 2011.06.13 - [color=red]Win32/Tnega.ADXU [/color]
F-Prot - 4.6.2.117 - 2011.06.13 - -
Fortinet - 4.2.257.0 - 2011.06.11 - [color=red]W32/PACKED.AJT!tr [/color]
GData - 22 - 2011.06.13 - -
Ikarus - T3.1.1.104.0 - 2011.06.13 - [color=red]not-a-virus.Crack [/color]
Jiangmin - 13.0.900 - 2011.06.13 - -
K7AntiVirus - 9.106.4807 - 2011.06.13 - [color=red]Riskware [/color]
Kaspersky - 9.0.0.837 - 2011.06.13 - -
McAfee - 5.400.0.1158 - 2011.06.13 - [color=red]Artemis!9C165CE0058B [/color]
McAfee-GW-Edition - 2010.1D - 2011.06.13 - [color=red]Artemis!9C165CE0058B [/color]
Microsoft - 1.6903 - 2011.06.13 - -
NOD32 - 6204 - 2011.06.13 - [color=red]a variant of Win32/Packed.VMProtect.AAA [/color]
Norman - 6.07.10 - 2011.06.13 - [color=red]W32/Crypt.AVPM [/color]
nProtect - 2011-06-13.02 - 2011.06.13 - -
Panda - 10.0.3.5 - 2011.06.13 - -
PCTools - 7.0.3.5 - 2011.06.10 - [color=red]HeurEngine.Vmpbad [/color]
Prevx - 3.0 - 2011.06.13 - -
Rising - 23.62.00.03 - 2011.06.13 - [color=red]Trojan.Win32.Generic.12881FF2 [/color]
Sophos - 4.66.0 - 2011.06.13 - [color=red]Mal/Behav-363 [/color]
SUPERAntiSpyware - 4.40.0.1006 - 2011.06.13 - -
Symantec - 20111.1.0.186 - 2011.06.13 - [color=red]Packed.Vmpbad!gen1 [/color]
TheHacker - 6.7.0.1.230 - 2011.06.12 - -
TrendMicro - 9.200.0.1012 - 2011.06.13 - [color=red]TROJ_PACKED.AJT [/color]
TrendMicro-HouseCall - 9.200.0.1012 - 2011.06.13 - [color=red]TROJ_PACKED.AJT [/color]
VBA32 - 3.12.16.1 - 2011.06.13 - [color=red]SScope.Trojan.FakeAV.0997 [/color]
VIPRE - 9573 - 2011.06.13 - [color=red]Trojan.Win32.Generic!BT [/color]
ViRobot - 2011.6.13.4509 - 2011.06.13 - -
VirusBuster - 14.0.78.0 - 2011.06.13 - [color=red]Trojan.Packed!9rgSQjSIAbk [/color]



Espero vuestra respuesta
#11
Scripting / Problema script bash
28 Mayo 2011, 17:26 PM
Buenas. Estoy intentando hacer un script que muestre los ficheros que hay en un directorio(texto,carpetas,ficheros especiales y ejecutables). Este puede recibir o no como parámetro el directorio. El caso es que me da error en la variable a la que asigno el directorio. Os dejo el código y gracias por las molestias.

 #!/bin/bash

 if [ -z $1 ]
 then
   echo "La clasificación de ficheros del directorio $(pwd) es:"
   directorio=`pwd`
 elif [ ! -z $1 ]
 then
   echo "La clasificación de ficheros del directorio $1 es:"
   directorio=$1
 fi

 $ntext=`file $directorio/* |grep -c "text"`
 $text=`file $directorio/*| grep "text" | cut -f 1 -d ":"`
 $ndisp=`file $directorio/* |grep -c "device"`
 $disp=`file $directorio/*| grep "device" | cut -f 1 -d ":"`
 $ndire=`file $directorio/*|grep -c "directory"`
 $direc=`file $directorio/*| grep "directory" | cut -f 1 -d ":"`
 $nejec=`file $directorio/*|grep -c "executable"`
 $ejec=`file $directorio/*| grep "executable" | cut -f 1 -d ":"`
 echo "Hay $ntext fichero/s de texto: $text"
 echo "Hay $ndisp fichero/s de dispositivo: $disp"
 echo "Hay $ndire directorio/s: $direc"
 echo "Hay $nejec fichero/s ejecutables: $ejec"