我在Windows命令提示符下执行shell脚本,通过使bash作为默认应用程序来打开.sh文件。 我能够运行没有input参数的任何脚本,但对于具有input参数的脚本,我得到错误“无法初始化设备PRN”。 我可以看到参数没有被传递给脚本。 我怎样才能将一个参数从Windows命令行传递给shell脚本?
这是我在命令提示符下所做的。
X:> OracleSPExec.sh过程数据库
PROCEDURE =
导出程序
DATABASE =
导出数据库
sudo的PHP exec在CentOS上失败
将数据从shell脚本插入到'安全'表中
Cgywin .sh文件作为Windows任务计划程序运行
在C中实现一个shell
哈德森:“是的:标准输出:断pipe”
为什么 $减less到$内部反引号内?
如何获取IShellItem的系统映像列表图标索引?
区分哪些文件夹丢失
是否有可能编写一个在bash / shell和PowerShell中运行的脚本?
看来shell脚本使用print命令/内建,这可能与打印文件到PRN :device的windows print.exe冲突。
两个可能的问题:
失踪shebang #!
您必须在脚本的开头添加以下行:
#!/usr/bin/bash
文件开头的Unicode BOM
有时如果文件是用UTF-8和BOM编写的,那么shebang不能被解释。 删除你的帖子前面的标题(隐藏?)。
我遇到了这个问题,试图运行一些本地发明的标签脚本,曾经工作,但我有一台新的笔记本电脑,它运行的是Windows 10.我安装的cygwin版本中的bash似乎没有print作为一个内置的命令(它确实有printenv和printf作为外部命令)并且没有print命令,而不是System32 print命令:
$ type print print is hashed (/cygdrive/c/WINDOWS/system32/print) $ type echo echo is a shell builtin
alias print=echo
这消除了“无法初始化设备PRN”的问题。 这仍然是很好的知道为什么这一点工作。