这两行是什么意思?



我是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"

更新:根据指令,我更新了代码。 我认为哈哈

相关内容

最新更新