我在 linux --help 中找不到这个。 你能告诉我这些命令的作用吗
NAME=gs://toto-titi-dfs-dfe-gfd-zed/
那么不明确的命令是:
NAME="${NAME//\\/\\\\}"
NAME="${NAME//\//\\/}"
然后我们有这两个命令:
sudo sed -i "s/spark\.eventLog\.dir.*/spark\.eventLog\.dir $NAME/g" /usr/lib/spark/conf/spark-defaults.conf
sudo sed -i "s/spark\.history\.fs\.logDirectory.*/spark\.history\.fs\.logDirectory $NAME/g" /usr/lib/spark/conf/spark-defaults.conf
我也看不懂
请提供任何帮助
非常感谢
最佳答案
- 将变量
NAME
设置为字符串gs://toto-titi-dfs-dfe-gfd-zed/
- 使用
NAME="${NAME//\\/\\\\}"
将该变量中\
的所有实例替换为\\
阅读有关 Shell Parameter Expansion here 的信息特别是标记为 ${parameter/pattern/string} 的部分。 - 使用
AME="${NAME//\//\\/}"
将NAME
变量中/
的所有实例替换为\/
。执行这两个步骤是为了转义NAME
变量中的/
和\
,以便sed
不会阻塞。 - 在文件
/usr/lib/spark/conf/spark-defaults.conf
中,将spark.eventLog.dir.*
的匹配项替换为spark.eventLog.dir $NAME
- 在文件
/usr/lib/spark/conf/spark-defaults.conf
中,将spark.history.fs.logDirectory.*
的匹配项替换为spark.history.fs.logDirectory $NAME
关于Linux命令解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56546801/