我是shell脚本新手。请帮我解决这两行代码,我必须解决一个问题。解释这两行:
JSON=$CURRENTFILE=$NEWFILENAME
echo $JSON > ${PROD_HOME}/tempHashes
答案 0 :(得分:1)
这会产生类似的东西:
currentname=newname
在PROD_HOME环境或脚本变量所指向的文件tempHashes
中,替换该文件中的所有其他内容。
但是,如果CURRENTFILE或NEWFILENAME变量包含空格或通配符(*?{} [])之类的内容,则无法按预期工作。
要纠正不需要的globbing,请始终引用变量:
JSON="$CURRENTFILE"="$NEWFILENAME"
echo "$JSON" > "${PROD_HOME}"/tempHashes
根据数据的种类,这仍然会有挑战。大多数Linux文件系统上的文件名可以包含相等的(=)符号。
答案 1 :(得分:1)
给我 1)你没有使用常量这么小的情况 2)对我来说,双重等于我是令人讨厌的 3)行情应该围绕vars等。 4)您所说的文件名称不是变量,请标注为 5)您从FILE传递数据而不是变量。
示例:
json_data_file="${current_filename}=${new_filename}"
cat "$json_data_file" > "${PROD_HOME}/tempHashes"
更新:每条指令我更新了代码。正确的我认为大声笑