[英]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)手册页。
您的脚本在其中运行的实际 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.