Intereting Posts
понимать последовательность перенаправления как бороться с сложной иерархией? Могу ли я скопировать базу данных MySQL, скопировав файлы? Что конкретно содержат файлы? Clonezilla не загружается Является системным «вредоносным»? top: как отменить текущую команду? Как команда "pmount" работает без "sudo" команда sed для добавления другого текста при множественном вводе строки Печать данных между двумя строками (только если существует «конец диапазона») из текстового файла Какова команда поиска файла jar в определенной папке? Как обрабатывать текстовый файл с несколькими столбцами для получения другого текстового файла с несколькими столбцами? Как проверить ненадежное графическое приложение? Почему я не вижу некоторые файлы на своем USB-накопителе в Windows, которые я могу увидеть в Linux? Проблема с часовым поясом MySQL Как имитировать взаимодействие пользователя при запуске другого скрипта

Извлечь определенный текст из переменной в сценарии оболочки

У меня есть 2 переменные

VAL1="C70AN" VAL2="MBA30" 

и у меня есть один каталог в моей системе /opt/web/C70/MBA/

Как я могу перейти в этот каталог с помощью переменных

например, cd /opt/web/$VAL1/$VAL2

Как я могу извлечь конкретный текст из переменной в сценарии оболочки?

Ответ @Anthon совершенно правильный, хотя это подразумевает слишком много ввода IMO. Я предлагаю определить функцию оболочки (bash) с именем (например.) «Mycd» в качестве обертки:

 function mycd { cd /opt/web/${VAL1:0:3}/${VAL2:0:3} } 

Теперь, независимо от того, какие значения имеют переменные $ VAR1 и $ VAR1, вызов этой функции изменит каталог на ожидаемое местоположение.

Попробуйте следующий пример в запущенном терминале bash, нажав ENTER в конце каждого окна строки ввода):

 user% cd; pwd /home/user user% function mycd { cd /opt/web/${VAL1:0:3}/${VAL2:0:3} } user% export VAL1="C70AN"; export VAL2="MBA30" user% mycd user% pwd /opt/web/C70/MBA user% 

Этот пример, конечно, требует наличия дерева каталогов «/ opt / web / C70 / MBA». Если это не так, вы получите сообщение об ошибке, подобное

 bash: cd: /opt/web/C70/MBA: file or directory not found 

Этот результат все еще является доказательством правильной работы функции «mycd», когда он пытается перейти к вычисленному каталогу, который пока не существует.

HTH, тоже

bash shell function variable substring