Объединить ассоциативные массивы Bash

Я пытаюсь создать скрипт, который по требованию объединяет массивы. Вот сценарий:

#! /bin/bash declare -A code code=( [H]="h" [E]="e" [L]="l" [P]="p" [M]="m" [E]="e" ) 

Мне нужно напечатать «помогите мне» – без кавычек и в одной строке – когда я вхожу ./filename.bash «ПОМОЧЬ МЕНЯ» в командной строке. вот что я использую.

 code=$1; for (( i = 0; i < ${#code[@]} ; i = $i + 1 )); do; echo ${code[@]:$i:1}; done 

One Solution collect form web for “Объединить ассоциативные массивы Bash”

Попробуйте это с помощью script.sh "HELP ME" :

 #!/bin/bash input=$1; declare -A code code=( [H]="h" [E]="e" [L]="l" [P]="p" [M]="m" [E]="e" ) for ((i=0; i<${#input}; i++)) do if [[ "${input:$i:1}" = " " ]]; then # whitespace? echo -n " " else echo -n "${code[${input:$i:1}]}" fi done 

Вывод:

 Помоги мне
  • Найдите конкретную вложенность имен каталогов, например ... / project / dir1 / dir2
  • Отправка сценария в tty вместо vt (определенная проблема, приветствуются другие решения)
  • FOR цикл не циклический
  • bash escape восклицательный знак внутри переменной с backtick
  • Bash итерация по парам файлов
  • Создать массив в bash с переменными как имя массива
  • Предотвращение сценария, изгоняющего системные ресурсы и сбой всей системы
  • Как данный скрипт делает исполняемые файлы в / usr / local / bin /
  • Показать видеофайлы с его размером
  • Поверните скрипт bash и php в распределяемый rpm
  • Найти и заменить содержимое файла
  • Linux и Unix - лучшая ОС в мире.