创建"第一次运行" bash中的通知?

时间:2018-05-11 16:12:50

标签: bash

制作"首次运行"的最佳方式是什么? 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

1 个答案:

答案 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"你有,你可以在第一次运行后创建一个文件,并检查它是否存在,以确定脚本是否已经运行。