Присвойте Substr строки переменной

783
VamsiKrishna

Я новичок в сценарии Unix. меня просят изменить скрипт ksh.

это требует, чтобы я назначил подстроку строки другой переменной. Я попробовал ниже, и это не работает

 GET_OLDEST_FILE=`ls -ltr *$FILE_PATTERN* | head -1 | awk ''` echo "Oldest File in Dir " $GET_OLDEST_FILE TIMESTAMP_ON_FILE=substr($,1,17) echo "Timestamp on file is " $TIMESTAMP_ON_FILE 

предложить способ заставить работу работать

0
http://www.tldp.org/guides.html - обратитесь к руководству по созданию сценариев Advanced Bash. Кш может быть немного по-другому, хотя. Hannu 9 лет назад 0
спасибо @Hannu это сработало TIMESTAMP_ON_FILE = `echo $ ` VamsiKrishna 9 лет назад 0
Это должно быть `TIMESTAMP_ON_FILE = $ ` - ваша конструкция излишне сложна. Но моя документация `ksh` не включает в себя расширение` $ {::} `: это особенность` bash`. AFH 9 лет назад 0
@AFH спасибо за совет, это сработало. VamsiKrishna 9 лет назад 0
Что бы работало без `$ {::}`, это `TIMESTAMP_ON_FILE = $ (printf" .5s "" $ GET_OLDEST_FILE ")`. Здесь я использовал `$ ()` вместо обратных кавычек, потому что последние используются для сегментов кода при комментировании. AFH 9 лет назад 0

1 ответ на вопрос

0
Hannu

http://tldp.org/guides.html - look for Advanced Bash scripting guide. ksh might be a bit different though.

There is an entire section on string manipulation in that guide.

alphas="abcdefg";echo $ will print de, i.e. two chars, starting with the fourth (0 is the first) from $alphas.