Bash脚本进入crontab的行为有所不同

时间:2018-11-05 08:46:54

标签: bash encoding cron environment

我无法找到单独运行或在cron中运行BASH脚本时行为不同的原因。我有以下代码段:

    #!/bin/bash
    RESPONSE=$(curl -fs -XPOST -H "Content-type: application/json" -d '{"id" : 4}' https://myserver.com)
    echo $RESPONSE

    if [ -z "$RESPONSE" ]; then
        echo "empty response"
        return 0
    fi

    COMMAND=$(echo $RESPONSE | python -c "import sys, json; print json.load(sys.stdin)['command']")
    if [ -z "$COMMAND" ]; then
        echo "empty command"
    elif [ "$COMMAND" = "SYS_INFO" ];
    then
        #business logic
    fi

在两个环境中打印两个不同的响应:

$RESPONSE Running from console:
{"id":"1f78d8d0-e754-4a23-a2f0-448fbeb42995", "key":"\n4RHDFAnTull1Z+aHGbO1zXcAGghuaEUz0w8sT7dlpc80jG6ZaWnbDox4G0f8sKY\ng0WZ80zWf8ftNgX3nes9MWYEq00nM5jJWCSavmGSKCKjoGD2XqBod8W0Z5w/KAHTSitGVMFgMjda91+xozw8uMlzR/t3Y8FP2k/NHj\n"}

$RESPONSE Running from :
{"id":"1f78d8d0-e754-4a23-a2f0-448fbeb42995", "key":"
4RHDFAnTull1Z+aHGbO1zXcAGghuaEUz0w8sT7dlpc80jG6ZaWnbDox4G0f8sKYj
g0WZ80zWf8ftNgX3nes9MWYEq00nM5jJWCSavmGSKCKjoGD2XqBod8W0Z5w/KAHTSitGVMFgMjda91+xozw8uMlzR/t3Y8FP2k/NHj
"}

请注意\n,服务器返回到key字段,该字段从控制台运行时存在,从crontab运行时不存在(实际上,它们被编码为换行符)

我尝试过的事情:

  1. 按照建议的here添加源〜/ .bashrc
  2. 根据建议here
  3. 更改PATH的值来评估两种环境的差异

但是,似乎没有任何作用。

0 个答案:

没有答案