为什么Linux shell命令在comand行中是正确的,但它';shell文件中的错误?
“粘贴-d'|'为什么Linux shell命令在comand行中是正确的,但它';shell文件中的错误?,linux,shell,Linux,Shell,“粘贴-d'|'#!/bin/bash通知shell使用bash,当您使用sh运行它时,它不会使用bash,因为sh是强制的 sh比bash更受限制,因此如果您的脚本使用bash逻辑,但通过sh运行,它不完全兼容,并且在sh不理解命令的地方出错。重复的请不要使用可以复制/粘贴的代码/数据的屏幕截图。高级读者依靠n使用浏览器的搜索功能查找关键字、错误等。使用鼠标选中文本的编辑菜单中的{}工具将格式设置为code/data/requiredOutput/ExactErrMsgs。祝你好运。我用“#”
#!/bin/bash
通知shell使用bash
,当您使用sh
运行它时,它不会使用bash
,因为sh
是强制的
sh
比bash
更受限制,因此如果您的脚本使用bash
逻辑,但通过sh
运行,它不完全兼容,并且在sh
不理解命令的地方出错。重复的请不要使用可以复制/粘贴的代码/数据的屏幕截图。高级读者依靠n使用浏览器的搜索功能查找关键字、错误等。使用鼠标选中文本的编辑菜单中的{}
工具将格式设置为code/data/requiredOutput/ExactErrMsgs
。祝你好运。我用“#”是没有用的/bin/sh”,结果是一样的。这正是我所解释的。您的脚本是为Bash编写的,您试图使用sh
运行它,而sh
不知道如何处理所有特定于Bash的
命令。重点是,不要使用sh
(或任何命令)如果希望遵守shebang,请运行脚本。使脚本可执行并将其用作命令名。如果坚持将脚本名作为参数传递,请使用bash
,而不是sh
。我使用bash,它不起作用:xu@xu-虚拟机:~$cat test.sh#!/bin/bash命令=“粘贴-d'|”