我是shell脚本的新手。请帮我处理这两行代码,我必须解决一个问题。解释这两行:
JSON=$CURRENTFILE=$NEWFILENAME
echo $JSON > ${PROD_HOME}/tempHashes
这将产生类似以下内容:
currentname=newname
在文件中tempHashes
在环境或脚本变量指向的任何位置PROD_HOME替换该文件中的其他所有内容。
但是,如果该 CURRENTFILE 或 NEWFILENAME 变量包含空格或通配字符之类的内容 (*?{}[](,这不会按预期工作。
要纠正不需要的通配,请始终引用变量:
JSON="$CURRENTFILE"="$NEWFILENAME"
echo "$JSON" > "${PROD_HOME}"/tempHashes
根据数据类型的不同,这仍然会面临挑战。大多数 Linux 文件系统上的文件名可以包含等号 (=(。
对我来说 1(你没有使用常量,所以小写 2(双等于对我来说是令人反感的 3(引号应该在变量等周围。 4(您谈论的是文件名而不是变量,请这样标记 5( 您是从文件而不是变量传递数据。
例:
json_data_file="${current_filename}=${new_filename}"
cat "$json_data_file" > "${PROD_HOME}/tempHashes"
更新:根据指令,我更新了代码。 我认为哈哈