【发布时间】:2017-10-28 12:54:52
【问题描述】:
向所有开发者致敬,
请原谅我回答这个问题,但我是个小菜鸟,说到 shell 脚本,我还在学习(请多多包涵)。
好的,长话短说...我在某人的脚本中遇到了这个 shell 命令:
sed -e 1,\$s/a/${b} myfile > myfile_1
1 代表什么?并且“\”是否会转义字符“$”?
感谢开发者。
【问题讨论】:
-
感谢赛勒斯的提示:D
向所有开发者致敬,
请原谅我回答这个问题,但我是个小菜鸟,说到 shell 脚本,我还在学习(请多多包涵)。
好的,长话短说...我在某人的脚本中遇到了这个 shell 命令:
sed -e 1,\$s/a/${b} myfile > myfile_1
1 代表什么?并且“\”是否会转义字符“$”?
感谢开发者。
【问题讨论】:
这取决于行的执行位置。
假设它在bash 或ksh 或类似的东西中执行,该行表示执行sed,脚本1,$s/a/ 附加shell 变量b 的内容。显然,b 的值应该终止s 指令,否则sed 会报错。
如果不知道b 的值,就不可能知道脚本会做什么——它可以简单地完成s 指令,用于在每一行替换a,但它可以包含任意数量的附加说明。
【讨论】:
1,$ 在我看来不是必需的,因为它说“对每一行都这样做”,无论如何这是默认行为。