可以将命令行参数保存到文件中,然后将文件传递给perl以解析出选项?与某些Microsoft工具类似的响应文件(以@开头的名称)。将命令行参数传递给perl通过文件?
0
A
回答
2
我想通过命令行将表达式传递给perl,就像perl -e'print“\ n”',并且Windows命令提示符使得双引号有点难。
有几种解决方案,从大多数到最不可取。
写你的程序文件
如果一个衬垫过大或复杂的,它写入一个文件并运行它。这可以避免与shell转义混淆。您可以重新使用它并调试它并在真实的编辑器中工作。
perl path\to\some_program
的命令行选项到perl可以放在否则无用的Windows #!
线。这是一个例子。
#!/usr/bin/perl -i.bak -p
# -i.bak Backs up the file.
# -p Puts each line into $_ and writes out the new value of $_.
# So this changes all instances in a file of " with '.
s{"}{'}g;
使用替代引号分隔
Perl has a slew of alternative ways to write quotes。改用它们。这对于一个衬垫以及诸如q[<tag key='value'>]
之类的东西都是好的。
perl -e "print qq[\n]"
逃离报价
^
is the cmd.exe
escape character。所以^"
被视为字面引用。
perl -e "print ^"\n^""
很可怜。当您需要打印字面引号时,我更愿意使用qq[]
并保留^"
。
perl -e "print qq[^"\n]"
使用ASCII码
The ASCII and UTF-8 hex code for "
is 22。你可以通过qq[\x22]
将它提供给Perl。
perl -e "print qq[\x22\n]"
0
可以读取文件转换成字符串,然后使用
use Getopt::Long qw(GetOptionsFromString);
$ret = GetOptionsFromString($string, ...);
解析从该选项。
+0
请注意,这些是您的脚本的选项,而不是perl本身。 – melpomene
相关问题
- 1. 如何通过命令行将参数传递给SSIS作业
- 2. 如何通过命令行将参数传递给sql脚本
- 3. 如何将参数传递给通过psexec.exe运行的命令?
- 4. 通过命令行将参数传递给NUnit
- 5. 在命令行上通过cscript将参数传递给javascript
- 6. 如何通过bash将参数传递给命令行程序?
- 7. 如何通过Netbeans将命令行参数传递给程序?
- 8. 通过maven命令行将parallel和forkCount参数传递给testng
- 9. 将参数传递给winscp.com命令行
- 10. 将命令行参数传递给QPython
- 11. 将命令行参数传递给nightwatch.runner
- 12. 通过命令行传递参数php
- 13. 如何通过python代码将命令行参数传递给C++文件?
- 14. 使用命令行参数将文件传递给程序
- 15. 如何将命令行参数传递给PowerShell ps1文件
- 16. 无法将命令行参数传递给批处理文件
- 17. 通过命令行通过Maven将附加参数传递给karate-config.js
- 18. C#通过命令行传递文件
- 19. 将命令行参数传递给bash脚本命令
- 20. 将参数传递给命令模式
- 21. 如何通过批处理文件传递命令作为命令行参数
- 22. 通过Windows命令行将数据传递给arduino
- 23. 是否可以通过关联文件将命令行参数传递给可执行文件?
- 24. 将命令行参数传递给LaTeX文档
- 25. 如何通过命令行将MSDeploy样式参数传递给MSBuild?
- 26. 如何通过gradle测试将命令行参数传递给测试?
- 27. 如何通过AppleScript将命令行参数传递给Xcode项目?
- 28. 传递命令行参数
- 29. 传递命令行参数
- 30. 传递命令行参数
像'perl $(cat options.txt)prog.pl'? – melpomene
这是一个奇怪的要求。你想用这个解决什么问题?可能有更好的解决方案。 – Schwern
''xargs -a file.txt perl ...'不像@ melpomene的解决方案那样处理参数中的空白。如果你在参数中需要换行符,请看'xargs -0'。这并不是Perl特有的(但对于类似Unux的shell有一些特定的含义)。 – tripleee