【发布时间】:2015-06-19 05:13:05
【问题描述】:
sed -r -i -e "s/AppId/$a/" -e "s/AccessToken/$b/" FacebookApi > /script/newapp
通过给出这个命令为什么程序没有被执行你能解决这个问题吗?
【问题讨论】:
-
移除
-i或输出重定向> /script/newapp。 -
无论如何我都会试试的,谢谢
sed -r -i -e "s/AppId/$a/" -e "s/AccessToken/$b/" FacebookApi > /script/newapp
通过给出这个命令为什么程序没有被执行你能解决这个问题吗?
【问题讨论】:
-i或输出重定向> /script/newapp。
sed 是一个编辑器,而不是一个 shell 解释器。它执行 SED 指令,例如替代 s///,但不执行批处理或其他形式的二进制(而不是 sed 指令)。执行停留在调用 shell 级别和管理(例如在 sed 接收完整指令之前处理的 sed 指令字符串中双引号之间的变量替换)
【讨论】:
命令被执行。正如您指定的-i,它正在就地修改指定的文件(并且不生成任何输出)。
来自sed 手册页:
-i extension Edit files in-place, saving backups with the specified extension. If a zero-length extension is given, no backup will be saved. It is not recommended to give a zero-length extension when in-place editing files, as you risk corruption or partial content in situations where disk space is exhausted, etc.
由于sed直接修改FacebookApi标准输出为空(如文件/script/newapp)
【讨论】: