我有这个构造来初始化一个文件的内容的variables:
echo "yyy" > xxx read -r -d '' PAYLOAD <<< $(cat xxx) echo $? echo $PAYLOAD
这导致:
1 yyy
为什么读取返回1? 这是打破我的脚本,因为我运行set -e
。
read
返回1,因为只有在没有遇到文件结束时它才返回0
。
根据help read
:
Exit Status: The return code is zero, unless end-of-file is encountered
你甚至不需要在这里read
,只需使用$(<file)
将文件内容读入一个变量:
echo "yyy" > xxx payload=$(<xxx) echo $? echo "$payload"
建议不要使用所有的大写变量名称,以避免与ENV变量冲突。