Пока пределы вашего кода обработки командной строки (например, bash
или ruby
непосредственно) не превышены, у вас не должно быть никаких технических проблем с этим.
Является ли это хорошей идеей, это другой вопрос. Вы действительно хотите вводить пару сотен килобайт каждый один раз при запуске вашей программы? Вы хотите помнить, чтобы заключать в кавычки данные, если они содержат пробелы?
Есть несколько способов, которыми я видел эту обработку, которые вы можете рассмотреть (этот список ни в коем случае не является исчерпывающим):
Измените код так, чтобы, если нет аргументов, считывали информацию из стандартного ввода - это позволит вам сделать либо
ruby somescript.rb myData
или
ruby somescript.rb <myFile.txt
.
Используйте специальный символ для обозначения ввода файла (я видел @
, использованный таким образом). Таким образом,
ruby somescript.rb myData
будет использовать данные, предоставленные в командной строке, в то время как
ruby somescript.rb @myFile.txt
получит данные из файла.
Мой совет - использовать файловый метод для данных такого размера и разрешить использование аргумента, если он указан. Это охватывает оба возможных сценария:
- Множество данных, поместите их в файл, чтобы вам не приходилось перепечатывать их каждый раз, когда вы хотите выполнить команду.
- Не так много данных, разрешите их передачу в качестве аргумента, чтобы вам не приходилось создавать файл для чего-то, что было бы проще ввести в командной строке.