Bash 연관 배열 결합

Bash 연관 배열 결합

주문형 배열을 결합하는 스크립트를 만들려고 합니다. 스크립트는 다음과 같습니다.

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

명령 프롬프트에 ./filename.bash "HELP ME"를 입력하면 "help me"를 따옴표 없이 한 줄로 인쇄해야 합니다. 이것이 내가 사용하는 것입니다.

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

답변1

이 시도 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

산출:

도와주세요

관련 정보