Linux, разделяющий массив на отдельные переменные

По закону чему-то позволяют назвать себя "Unix", если он проходит дорогую сертификацию X/Open. Так не, FreeBSD не является Unix, они не мечтали бы о трате небольших наличных денег, они должны пройти многолетнюю сертификацию, которая является устаревшей момент, они получают его (одно изменение, запустите). С другой стороны, все BSDs являются прямыми потомками исходного исходного кода Unix из AT&T, взломанной до неузнаваемости ордой энтузиастов со всего мира. Таким образом да, FreeBSD является (генетический) Unix. Таким же образом Linux не является Unix, ни по закону, ни генетически. Но Linux был задуман как верный workalike того, какой Unix - все о (он тесно следует за POSIX), таким образом, да, Linux является также Unix.

Перепутанный достаточно?;-)

4
30.10.2013, 03:53
2 ответа

При использовании считайте выполнение его ударом путь.

Ваш массив был бы полученным таким образом (не внешний find команда):

params=( *${file_name}*.trg )

и затем Вы циклично выполняетесь через массив как так:

for file in "${params[@]}"; do
    echo "I'm happily reading the beautiful file $file"
done

Если Вы хотите удалить .trg расширение и замена это с .banana:

for file in "${params[@]}"; do
    echo "My gorilla loves the file ${file%.trg}.banana"
done

Этот метод, с надлежащим заключением в кавычки, будет 100%-м сейфом относительно файла с забавными символами на их имена.

Комментарий. Всегда используйте globbings с также shopt -s nullglob или shopt -s failglob.

9
27.01.2020, 20:47

Вы могли объявить параметрический усилитель как массив вместо как строка:

declare -a param=(`find *${file_name}*.trg`)

Теперь можно получить доступ к отдельным значениям с помощью индекса как будто они где отдельные переменные. Например:

echo ${param[1]}

распечатает ABC1099C.trg (второй элемент в массиве. Индекс запускается с 0).

Если Вы хотите избавиться от расширения файла, Вы могли бы попробовать ${param[1]%.*}

Для обнаружения больше о массивах смотрят здесь:

2
27.01.2020, 20:47

Теги

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