制作"首次运行"的最佳方式是什么? bash脚本中的通知?
我尝试先放export FIRSTRUN="no"
,
然后放
`if [ -z "$FIRSTRUN" ]; then
echo "It seems that this may be your first time running this script.";
echo "Please ${GREEN}test whether the needed components are installed${RESET}.";
echo "";
fi`
但它只是在每次运行脚本时执行。如果我将export FIRSTRUN="no"
放在 if 部分之后,则它永远不会运行 if 部分代码。所以这不起作用。
我是新手,所以请帮忙:D
答案 0 :(得分:0)
您无法在脚本中修改父shell状态,因此尝试导出变量将无效。
您可以使用配置文件存储一个变量,该变量确定脚本是否已经运行:
#!/bin/bash
# load vars from config at the start of the script
if [[ -f ~/.your_script.conf ]]; then
. ~/.your_script.conf
fi
# check whether var has been set to determine first run
if [[ -z $has_run ]]; then
echo 'first run'
# set variable in config file for next time
echo 'has_run=1' >> ~/.your_script.conf
fi
或者,如果这是唯一的" config"你有,你可以在第一次运行后创建一个文件,并检查它是否存在,以确定脚本是否已经运行。