是否有显示命令行参数的打包程序?我经常发现让用户运行这种类型的程序来帮助他们理解他们的 shell 命令的作用,或者获得更清晰、不那么模棱两可的反馈(例如,当我看不到他们的屏幕而我们正在使用 paste 在线交流时)很有帮助网站)。
我已经用 Python 编写了下面的脚本,它可以工作,但我发现告诉人们他们可以获取的 Ubuntu 包而不是解释如何写入文件chmod +x
和更改他们的系统更容易(例如,也许他们没有已~/bin
在 PATH 中设置,...)。
我很高兴看到一个命令行sed/awk/perl/etc.
脚本也可以执行此功能,即使它很丑陋。(“如果”......在一行中这样做会很丑陋。)
任何解决方案都需要与此脚本有一些相似的结果;用英语表示:用数字打印每个参数(转义有问题的字符只是一个奖励)。
#!/usr/bin/env python2.6
import sys
if len(sys.argv) == 1:
print "No args!"
else:
args = enumerate(sys.argv)
args.next() # skip program name
for i, v in args:
r = repr(v)
if v.strip() != v or v != r[1:-1]:
v = r + "\t(repr)"
print "%3d: %s" % (i, v)
我的解决方案(您已经知道;)作为一个函数(无需处理 PATH)成为单线:
这在 Bash 中特别容易和有用。 IBM 的本指南介绍了 $@、$#、$1、$2 等的使用,并有一个很好的 testargs.sh 脚本(参见清单 7 和 8),它可以执行您正在寻找的事情:它向用户展示了什么他们输入的参数和选项。