Bash:给管道空字符串一个默认值



以下是我想要实现的:

  1. 从名为.env的环境文件中获取令牌值
  2. 如果令牌为空,则curl是身份验证服务器
  3. 将令牌传递到环境并运行npm start

.env如下所示:

TOKEN=xyzabc

以下是我当前的脚本:TOKEN=$(grep 'TOKEN' .env | cut -d '=' -f2) npm start

但我不知道如何注入步骤2中列出的逻辑,它有点像curl auth.server,有人能帮忙吗?

检测字符串中的字符数:${#STRING}。如果给TOKEN一个值的grep不返回任何值,则字符串长度将为零。

TOKEN=$(grep 'TOKEN' .env | cut -d '=' -f2)
[ ${#TOKEN} -eq 0 ] && TOKEN=$(curl server.auth)
npm start

解释

  1. 从名为.env的环境文件中获取令牌值
    TOKEN=$(grep 'TOKEN' .env | cut -d '=' -f2)
  2. 如果令牌为空,则卷曲身份验证服务器
    [ ${#TOKEN} -eq 0 ] && TOKEN=$(curl server.auth)
  3. 将令牌传递到环境并运行npm start
    npm start