변수 =인 경우 변수를 BASH로 설정합니다.

변수 =인 경우 변수를 BASH로 설정합니다.

어떻게 이런 일을 할 수 있습니까?

   if [[ $variable = name ]]
  then
      $variable=fname
fi 
if [[ $variable = surname]]
  then
      $variable=sname
 fi    

따라서 변수를 사용자에게 친숙한 이름으로 설정하는 다른 웹 기반 스크립트가 있기 때문에 결과에 따라 값이 변경되지만 이를 올바른 이름으로 변경하려면 스크립트가 필요합니다. 사용자가 둘 이상을 선택할 수 있으므로 선택에 따라 변경해야 합니다.

답변1

할당 구문을 확인하세요. 하나도 없어야 합니다 $. $이다확장하다변하기 쉬운.

# standard sh syntax
case $variable in
  (name)    variable=fname;;
  (surname) variable=sname;;
  (*)       printf >&2 '%s\n' "$variable not supported"; exit 1;;
esac

또한보십시오:

# ksh93/bash/zsh specific
typeset -A map=(
     [name]=fname
  [surname]=sname
)

variable=${map[$variable]?$variable not supported}

(Bash의 연관 배열은 빈 문자열을 키로 지원하지 않습니다.)

어떤 경우에도 사용자 입력을 쉘 스크립트로 사용하는 웹 CGI를 작성하고 싶지 않을 것입니다. 특히 쉘 스크립팅 전문가가 아닌 경우 보안 허점이 발생할 것이 거의 확실하기 때문입니다.

관련 정보