Его простой вопрос, но слишком много проблем при обходе. Все упомянутые решения работают с ksh99. Но, к сожалению, я использую ksh88, и я не могу получить подстроку из строки.Подстрока в unix ksh88
Я пытаюсь получить год часть строки. но я получаю сообщение об ошибке. Синтаксис разреза кажется прекрасным. также назначение переменной.
cut: The list arguments following the c option are not correct.
Настоящая инструкция используется.
typeset -i dt_year=`echo 201610118 | cut -c1-4`
Трудно представить, что код, который был отправлен, потерпит неудачу. Работает ли команда 'cut' автономно? Посмотрите, можете ли вы создать [MCVE (минимальный, полный и проверенный пример)] (http://stackoverflow.com/help/mcve). – mklement0
Как вы застряли в ksh88, я предполагаю, что вы используете вариант Unix старой версии, HP или AIX, оба из которых известны своими причудливыми реализациями. Вы проверили 'man cut', чтобы увидеть, что' c' на самом деле означает символ ;-)? Возможно, добавьте тег для вашей ОС. (И я уверен, что вы имеете в виду ksh95. В то время как новые kshs, которые выходят до 2 лет назад, все они по-прежнему классифицируются как ksh95. Наконец, вы искали '/ usr/xpg4/bin/ksh' или какой-нибудь другой каталог?) Удачи. – shellter
Попробуйте 'echo 201610118 | cut -c1-4'. Когда это работает, попробуйте свою команду без 'typeset -i'. Также попробуйте 'typeset -i dt_year =" 2016 "'. Объедините эти тесты для определения вашей проблемы. –