我有三个 bash 脚本。w.txt、t.txt 和 d.txt。
文本文件:
#!/bin/bash
wtimes=( 8:20 9:30 10:11 )
wtimef=( 10:10 11:20 13:30 )
echo $wtimes >> d.txt
文本文件
#!/bin/bash
. ./w.txt
echo "${wtimes[1]}"
echo "${wtimef[1]}"
我正在尝试运行 t.txt,这样我就可以在不运行 的情况下使用 t.txt 中的数组变量 $wtimes 和 $wtimef echo $wtimes >> d.txt
。这非常简单,实际上 w.txt 中还有更多命令我不想在 t.txt 中执行。我该如何在这里做出选择?有人可以帮忙吗?
答案1
一个简单的方法是让导入的文件知道它已被导入,例如:
#!/bin/bash
wtimes=( 8:20 9:30 10:11 )
wtimef=( 10:10 11:20 13:30 )
if [ "${imported}" = "yes" ] ; then
exit;
fi
echo $wtimes >> d.txt
和
#!/bin/bash
imported=yes
. ./w.txt
echo "${wtimes[1]}"
echo "${wtimef[1]}"
但您可能需要重新考虑您的策略。如果不同的脚本使用一组通用变量,则将这些变量放在单独的文件中可能是一个好主意。例如:
vars.sh:
wtimes=( 8:20 9:30 10:11 )
wtimef=( 10:10 11:20 13:30 )
w.sh:
. ./vars.sh
echo $wtimes >> d.txt
t.sh:
. ./vars.sh
echo "${wtimes[1]}"
echo "${wtimef[1]}"