2015-08-31 1 views
0

Я пытаюсь использовать следующую команду для извлечения подстроки из строки:Substring команда не работает в солярисе kshell

propertyPath=$(echo $path|awk '{print substr($0,3,$index)}') 

Однако команда не подобрать значение переменной $index и, следовательно, не возвращает допустимую подстроку.

ответ

2

Это будет работать:

propertyPath=$(echo $path|awk '{print substr($0,3,'$index')}') 

или

propertyPath=$(echo $path|awk -v index=$index '{print substr($0,3,index)}') 
0

Одиночные кавычки говорят оболочке не расширять значения, поэтому вам придется использовать двойные кавычки вокруг вашей команды awk. Когда вы это сделаете, вам придется избегать $ для переменных, которые вы не хотите расширять раньше.

+0

Это то, что вы грубоватете? propertyPath = $ (echo $ path | awk "{print substr (/ $ 0,3, $ index)}") –

1

PropertyPath = $ (эхо $ путь | AWK "{печать зиЬзЬг (\ $ 0,1, $ индекс)}")