Извлеките подстроку из значения переменной

При помощи двоеточия и восклицательного знака можно выполнить любую команду в пути оболочки и сценариях оболочки, иметь в виду, что команда работает при пользователе, запускающем vi/vim программу, и использующий это - среда.

:!<command>

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

0
02.08.2013, 02:22
2 ответа

Если Ваша оболочка поддерживает его, можно использовать расширение

batchname=${ID##*_}

или даже

batchname=${ID#*_}

Первая форма удаляет все символы до и включая самое правое подчеркивание, и вторая форма удаляет все символы до и включая крайнее левое подчеркивание. В Вашем конкретном примере обе формы эквивалентны.

4
28.01.2020, 02:15

Это должно быть

batchname=`echo $ID | cut -d_ -f2`
2
28.01.2020, 02:15

Теги

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