Распечатайте пронумерованные аргументы в Инструменте Командной строки

Существует ли упакованная программа, которая показывает параметры командной строки? Я часто нахожу полезным сделать, чтобы пользователи выполнили этот тип программы, чтобы или помочь им понять то, что их команды оболочки делают, или получить более ясную, менее неоднозначную обратную связь (например, когда я не вижу их экран, и мы связываемся онлайн с сайтами вставки).

Я записал ниже сценария в Python, который работает, но я нашел бы легче сказать людям пакет Ubuntu, который они могут захватить, а не объяснить как запись файлу, chmod +x, и измените их систему (например, возможно они не имеют ~/bin установка в ПУТИ...).

Я был бы рад видеть командную строку 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)
2
задан 4 January 2015 в 20:10

2 ответа

Это особенно легко и полезно в Bash. Это руководство в IBM идет с помощью $, $ #, 1$, 2$, и т.д. и имеет хороший testargs.sh сценарий (см. списки 7 и 8), который делает что-то как, Вы ищете: это показывает пользователям, какие аргументы и опции они ввели.

0
ответ дан 4 January 2015 в 20:10

Мое решение (вы уже знаете;) как функция (не нужно иметь дело с PATH), чтобы стать однострочным:

showargs() { i=1; for f; do printf "arg%d: <%s>\n" $i "$f"; ((i++)); done; }
0
ответ дан 4 January 2015 в 20:10

Другие вопросы по тегам:

Похожие вопросы: