shell脚本返回值带有which输出

本意想返回一个false即可,结果带了一个node路径出来,脚本如下:

#!/bin/bash
#提示“请输入姓名”并等待30秒,把用户的输入保存入变量name中
read -t 30 -p "请输入手机号:" phone

#提示“请输入密码”并等待30秒,把用户的输入保存入变量pwd中,输入内容隐藏
read -t 30 -s -p "请输入用户密码:" password
echo -e "\n"

#登录接口
loginRes=`curl -X POST  "'Content-type':'application/json'" -d '{"api":"login.pw","params":{"loginId":'$phone',"password":'$password',"appId":"yptb"},"nonce":"uuid","sign":"sign","version":"1.0","timestamp":"230993499430010"}' https://apigw.xxxx.com/request`
echo "登录返回信息:$loginRes"

function getJsonValueByNode() {
    if which node; then
        local json="$1"
        local key="$2"
        node -pe "JSON.stringify(JSON.parse(process.argv[1]).$key)" "$json" | awk '{print ($0 == "undefined" ? "null" : $0)}'
        return 0
    else
        return 1
    fi
}

value=$(getJsonValueByNode $loginRes "result.success")

echo "变量:$value"

解决方式:

将which的输出到/dev/null中,参考:How can I check if a program exists from a Bash script? - Stack Overflow

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值