VARを別のスクリプトにエクスポートする方法[閉じる]

VARを別のスクリプトにエクスポートする方法[閉じる]

この変数を別のスクリプトにエクスポートするにはどうすればよいですか?一部のコマンドを実行するには、別のスクリプトを実行する必要があります。スクリプトが大きすぎて分割し、varを別のスクリプトに入れたいので、これをしたいです。

#palavlasがユーザー名を渡すときの保護に注意してください。
パスワードリスト = "$HOME/passwords.txt"
user_list="$HOME/users.txt"
newpassword_list="$HOME/newuserpassword.txt"
#mail
目的地="メール"
ENVIADOPOR="メール"
ASSUNTO="Palavra passe、ユーティリティ、ホスト名"
#SSHパスワード
run1="sshpass -p $oldpass sshhost@ip"
run2="sshpass -p $新しいパスワード ssh ホスト@ip"
run3="sshpass -p $oldpass sshhost@ip"
run4="sshpass -p $新しいパスワード ssh ホスト@ip"
run5="sshpass -p $oldpass ssh redmine@ip"
run6="sshpass -p $新しいパスワード ssh redmine@ip"

ベストアンサー1

デフォルトでは、あなたの質問に答えるために変数を割り当てる前に "export"キーワードを使用すると、実行するすべてのサブシェルで使用できます。たとえば、次のようになります。

export DESTINATARIO="mail"

しかし、スクリプトが「大きすぎる」という理由は、シェルスクリプトをライブラリとして構成し、最上位のスクリプトを使用してインクルードファイルの関数を呼び出すことも検討することができます。例:

#!/bin/bash
# load functions defined in mylib1.sh and mylib2.sh
source mylib1.sh
source mylib2.sh
# set my var
VAR1=123abc
# call functions from mylib1.sh and mylib2.sh
lib1func1 $VAR1
lib2func2 $VAR1

たとえば、mylib1.sh には lib1func1 という関数定義があります。

lib1func1() {
  local firstvar=$1    # reading 
  echo $firstvar
}

もちろん、最上位シェルはライブラリに既知の変数(グローバル変数)をエクスポートすることもできますが、このアプローチはあまりモジュール的ではないため、お勧めできません。

おすすめ記事