这两条线意味着什么?

时间:2018-06-05 09:54:03

标签: bash shell

我是shell脚本新手。请帮我解决这两行代码,我必须解决一个问题。解释这两行:

JSON=$CURRENTFILE=$NEWFILENAME
echo $JSON > ${PROD_HOME}/tempHashes

2 个答案:

答案 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"

更新:每条指令我更新了代码。正确的我认为大声笑