URL 디코딩 쉘 스크립트

URL 디코딩 쉘 스크립트

쉘 스크립트를 사용하여 URL 디코딩된 문자열을 변수에 저장하는 방법

#!/bin/sh
alias urldecode='python -c "import sys, urllib as ul;print ul.unquote_plus(sys.argv[1])"'
str="this+is+%2F+%2B+%2C+.+url+%23%24coded"

decoded = ${urldecode $str}
echo $decoded

디코딩된 문자열을 decoded라는 변수에 저장하려고 합니다.

답변1

#!/bin/sh -
urldecode() {
  python -c "import sys, urllib as ul;print ul.unquote_plus(sys.argv[1])" "$1"
}
str="this+is+%2F+%2B+%2C+.+url+%23%24coded"
decoded=$(urldecode "$str"}
printf '%s\n' "$decoded"

그건:

  • 작동이 보장되지 않으므로 스크립트에서 별칭을 사용하지 마십시오(일부 sh 구현(예: bash)은 비대화형일 때 별칭을 무시합니다).
  • 변수를 참조하세요. 쉘의 분할+글로브 연산자는 변수를 인용 해제합니다.
  • 명령의 출력을 대체하는 연산자는 다음과 같습니다.$(...)
  • Bourne과 유사한 쉘의 변수 할당 구문은 주변 공백을 허용하지 않습니다 =. echo = x이는 echo변수에 할당하는 대신 및 인수를 사용하여 명령을 호출하는 것을 의미합니다.=xxecho
  • echo를 사용하면 임의의 데이터를 표시 할 수 없으며 printf대신 를 사용하십시오.

관련 정보