簡體   English   中英

兩個shell腳本使用相同的變量

[英]Two shell scripts using same variable

我有兩個shell腳本test1.sh和test2.sh。
在test1.sh我有以下聲明:
在, test1.sh ,我有一個變量I,其值將由test2.sh使用

#!/bin/sh
I="10"
echo $I

在, test2.sh中 ,將復制和打印相同的變量值

#!/bin/sh
J=$I
echo $J

我需要在crontab中運行這兩個腳本,我嘗試了導出命令,但沒有任何效果。

將此添加到您的crontab:

. ./test1.sh && ./test2.sh;

然后修改你的test1.sh:

#!/bin/sh
export I="10"
echo $I

隨着. 第一個將作為源執行並將保存變量。

這兩個腳本都在自己的shell中運行,並且只與其父進程共享其環境。 如果需要兩個單獨的shell腳本來共享環境變量,則必須在調用腳本之前在父進程中設置(和導出)變量。

您還可以創建僅設置變量的第三個腳本,並從兩個主腳本中獲取該腳本。

如果要在腳本test2.sh使用test1.sh的輸出, test1.sh有兩個選項

  • test1.sh的輸出存儲在一個文件中,並在test2.sh讀回該文件
  • 調用test1.shtest2.sh

test2.sh:

#!/bin/sh
J=$(test1.sh)
echo $J

正如@Joachim Pileborg已經建議的那樣,您可以在一個腳本中設置(但不回顯)變量,並在另一個腳本中將其源化

test1.sh

I="10"
J=20
K=30

test2.sh

source test1.sh
# do something with I, J, K

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM