Linux命令说明

时间:2019-06-11 15:13:17

标签: linux bash

我在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

我也听不懂

对此有任何帮助

非常感谢

1 个答案:

答案 0 :(得分:1)

  1. 将变量NAME设置为字符串gs://toto-titi-dfs-dfe-gfd-zed/
  2. 使用\在该变量中交换\\NAME="${NAME//\\/\\\\}"的所有/实例,详细了解Shell Parameter Expansion here标记为 $ {parameter / pattern / string}的部分
  3. 使用\/NAME变量中用AME="${NAME//\//\\/}"交换/的所有实例。执行这两个步骤是为了逃避\变量中的NAMEsed,以使/usr/lib/spark/conf/spark-defaults.conf不会阻塞。
  4. 在文件spark.eventLog.dir.*中将spark.eventLog.dir $NAME的匹配项替换为/usr/lib/spark/conf/spark-defaults.conf
  5. 在文件spark.history.fs.logDirectory.*中将spark.history.fs.logDirectory $NAME的匹配项替换为UnprocessedKeys