Hola,
Me gustaría saber si hay alguna forma de llenar el campo read de un script utilizando otro.
Por ejemplo este script que no es posible modificar , al ejecutarse me pide que introduzca el valor:
read -p "Introduce un Valor: " variable
echo "$variable"
Ahora lo que necesito saber si existe alguna forma para que ese valor lo introduzca otro script sin tocar el primer script.
?????
Gracias
vamos a suponer que el script 1.sh es intocable
#!/bin/bash
echo -e "¿buenos dias que quieres parsear?
"
read parseo
echo -e "
ya ta ;)
"
echo -e $parseo
como puedes apreciar me hace una pregunta y contesto y me lo muestra en pantalla lo que he contestado
warcry Desktop # sh 1.sh
¿buenos dias que quieres parsear?
hola mundo
ya ta ;)
hola mundo
warcry Desktop #
bien esa seria mi salida "hola mundo" que es lo que necesito que lea mi segundo script que es 2.sh
para eso necesito apoyarme en un archivo de texto el 1.lst, al cual voy a mandar con el comando tee toda la información del script intocable.
warcry Desktop # sh 1.sh | tee 1.lst
¿buenos dias que quieres parsear?
hola mundo
ya ta ;)
hola mundo
warcry Desktop #
el script se ha ejecutado con normalidad, y a la vez me ha generado este archivo de texto:
¿buenos dias que quieres parsear?
ya ta ;)
hola mundo
ahora tengo que acoplar el segundo script el cual si puedo modificar para que al read le pase la información que necesito
como a mi me interesa la salida que sale en la ultima linea, la manera mas eficiente seria crear una variable en el segundo script y olvidarte del read
#!/bin/bash
suerte=$(tail -1 1.lst)
echo $suerte
que aun asi quieres seguir utilizando read, pues generas un archivo intermedio
#!/bin/bash
tail -1 1.lst > 2.lst
read suerte < 2.lst
echo $suerte
en cualquiera de los dos casos la salida es la misma
warcry Desktop # sh 2.sh
hola mundo
Creo que me explicado mal , lo siento.
EL tema es que yo quiero conectarme por ssh pero quiero que no me pide la contraseña
es decir en el mismo comando introducir la contraseña pero no creo que se pueda.
Por eso quería saber si hay alguna forma para que un script autoconteste a la petición de contraseña del ssh.
o otro ejemplo es el unrar que al querer extraer un rar encryptado me pide pass y yo quiero ponerle la pass dentro del comando o crear un script que autoconteste a la petición.
No se si me he explicado :-\
Gracias
ssh -p 22 usuario:contraseña@192.168.0.168
no se que tiene de misterio
edito: y con respecto a unrar
NAME
unrar - extract files from rar archives
SYNOPSIS
unrar <command> [-<switch 1> -<switch N>] archive [files...] [path...]
DESCRIPTION
This manual page documents briefly the unrar command.
This manual page was written for the Debian GNU/Linux distribution
because the original program does not have a manual page.
Commands and options described here are as of unrar 2.02.
OPTIONS
After the program name comes a command and then optional switches with
dashes before them. A summary of commands is included below. For a complete
description, run unrar without options.
e Extract files to current directory.
l List archive content.
p Print file to stdout.
t Test archive files.
v Verbosely list archive.
x Extract files with full path.
SWITCHES
NOTE: Every switch must be separated by a whitespace.
You cannot put them together.
-av- Disable AV check.
-c- Disable comments show.
-f Freshen files.
-kb Keep broken extracted files.
-ierr Send all messages to stderr.
-inul Disable all messages.
-o+ Overwrite existing files.
-o- Do not overwrite existing files.
-p<password>
Set password.
-p- Do not query password.
-r Recurse subdirectories.
-u Update files.
-v List all volumes.
-x<file>
Exclude specified file.
-x@<list>
Exclude files in specified list file.
-x@ Read file names to exclude from stdin.
-y Assume Yes on all queries.
SEE ALSO
The program is documented fully in Rar.Txt which you find in /usr/doc/rar.
Options described there are same for rar and unrar.
AUTHOR
This manual page was written by Petr Cech <cech@debian.org> according
to "unrar -h" for the Debian GNU/Linux system (but may be used by others).
tiene la opcion -p para introducir la contraseña directamente :huh:
los he intentado las 2 cosas antes de postear y no me funcionaron me seguía pidiendo la pass en los 2 casos
Cita de: puchi en 28 Diciembre 2016, 19:16 PM
los he intentado las 2 cosas antes de postear y no me funcionaron me seguía pidiendo la pass en los 2 casos
hay que usar mas google :¬¬
supongo que la conexión ssh la tendras cifrada por rsa y por eso te pide pass.
descargate el paquete sshpass y lo instalas
sshpass -p contraseña ssh usuario@192.168.0.1
edito la negociación previa de la key RSA la tienes que tener hecha y guardada el archivo /root/.ssh/known_hosts, esto se hace solo una vez y en la primera conexion, despues como queda guardada ya no hace falta
warcry ~ # ssh usuario@192.168.0.1
The authenticity of host '192.168.0.1 (192.168.0.1)' can't be established.
RSA key fingerprint is cc:a7:d4:94:3a:3b:aa:f2:ab:13:cd:e5:6a:fc:0a:9a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.1' (RSA) to the list of known hosts.
usuario@192.168.0.1's password:
>
despues con el sshpass entraras directamente
warcry ~ # sshpass -p contraseña ssh usuario@192.168.0.1
>
para el unrar tan sencillo como esto
warcry ~ # unrar x -pcontraseña /root/Desktop/1.rar
UNRAR 5.30 beta 6 freeware Copyright (c) 1993-2015 Alexander Roshal
Extracting from /root/Desktop/1.rar
Extracting 1.lst OK
All OK
warcry ~ #
la única complicación puede venir si dejas un espacio en blanco entre el -p y la clave
Buala! ;-)
no me esperaba que ese miserable espacio me causara este problema jajajaj -p
sobre el otro lo voy a probar ahora, estaba buscando yo tmb por google y encontra algo llamado empty-expect para automatizar scripts por bash y que hace funcionar cosas como estas XD