繁体   English   中英

创建一个 npm 命令来创建一个有内容但末尾没有新行的文件

[英]Create a npm command to create a file with content but without new line at the end

我正在尝试使用echo -n命令将一些内容写入文件,而节点的 package.json 中没有新行,例如

start: "echo -n hello > my.file"

当我运行npm start ,它不是没有新行的hello ,而是在my.file中创建-n hello 但是它在我的终端中正确运行(我在 Mac 上)。

这是由于 NPM 使用不接受-n选项的sh(1) shell 运行脚本。 解决此问题的一种方法是将 NPM 设置为使用 Bash:

npm config set script-shell "/bin/bash"

echo命令的文档

某些 shell 可能提供与此实用程序类似或相同的内置 echo 命令。 最值得注意的是,sh(1) 中的内置 echo 不接受 -n 选项。 请参阅内置(1)手册页。

NPM 运行脚本的文档

您的脚本在其中运行的实际 shell 取决于平台。 默认情况下,在类 Unix 系统上是 /bin/sh 命令,在 Windows 上是 cmd.exe。 /bin/sh 所指的实际 shell 也取决于系统。 从 npm@5.1.0 开始,您可以使用 script-shell 配置自定义 shell。

这里还有一个相关的 StackOverflow 答案: 当使用 bash 执行脚本时,“echo -n”工作正常,但不使用 sh

根据您的上下文,您可以使用printf代替echo ,这不会自动 append a \n char。

https://unix.stackexchange.com/questions/58310/difference-between-printf-and-echo-in-bash

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM