쉘 스크립트를 사용하여 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
변수에 할당하는 대신 및 인수를 사용하여 명령을 호출하는 것을 의미합니다.=
x
x
echo
echo
를 사용하면 임의의 데이터를 표시 할 수 없으며printf
대신 를 사용하십시오.