요약: 셸 스 크 립 트 매개 변수 전달 에 빈 칸 이 포함 되 어 있 는 문 제 를 해결 합 니 다.
전달 매개 변수 에 빈 칸 이 존재 하 는 상황 은 세 가지 로 나 뉜 다. 첫 번 째 는 함수 에 전달 하 는 매개 변수 에 빈 칸 이 존재 하 는 것 이다.두 번 째 는 셸 스 크 립 트 에 직접 전달 되 는 매개 변수 (전달 되 는 매개 변 수 는 직접 사용 되 고 다른 함수 에 간접 적 으로 전달 되 지 않 음 을 나타 낸다) 에 빈 칸 이 존재 합 니 다.세 번 째 는 셸 스 크 립 트 에 간접 적 으로 전 달 된 매개 변수 에 빈 칸 이 존재 하 는 것 입 니 다 (즉, 전 달 된 매개 변 수 를 다른 함수 에 다시 전달 하 는 것 입 니 다).
1. 함수 에 전달 하 는 매개 변수 에 빈 칸 이 존재 합 니 다.
이 방법 으로 해결 하 는 것 이 비교적 쉬 우 니, 직접 작은 따옴표 로 묶 으 면 된다. 강 강 강 은 다음 과 같은 몇 가지 예 를 들 면 알 수 있다.
:
#!/bin/bash
test() {
echo :$1
echo :$2
echo :$3
}
test "1 2 3 4 5 6"
:
:1 2 3 4 5 6
:
:
:
#!/bin/bash
test() {
echo :$1
echo :$2
echo :$3
}
test "1 2 3" "4 5 6"
:
:1 2 3
:4 5 6
:
:
#!/bin/bash
test() {
echo :$1
echo :$2
echo :$3
}
test 1 "2 3 4 5" 6
:
:1
:2 3 4 5
:6
2. 셸 파일 에 직접 전달 하 는 매개 변 수 는 빈 칸 이 있 습 니 다.
이런 방식 의 처 리 는 첫 번 째 처리 와 마찬가지 로 바로 빈 칸 을 넣 으 면 된다.
3. 셸 파일 종 에 간접 적 으로 전달 하 는 매개 변수 에 빈 칸 이 존재 합 니 다.
우 리 는 아래 의 셸 파일 을 봅 니 다.
test.sh
#/!bin/bash
echo " :${1}"
echo " :${2}"
echo " :${3}"
test() {
echo " :${1}"
echo " :${2}"
echo " :${3}"
}
test $*
echo :$*
명령 실행 사용: sh test. sh "12"3 4 "5 6"
출력:
:1 2
:3 4
:5 6
:1
:2
:3
:1 2 3 4 5 6
들 어 오 는 매개 변 수 를 즉시 함수 에 전달 하면 따옴표 가 없어 함수 에서 함 수 를 정확하게 가 져 올 수 없 음 을 알 수 있 습 니 다.
sh test. sh '1, 2', '3, 4', '5, 6' (매개 변 수 는 가장 바깥쪽 에 작은 따옴표 로 포함) 을 사용 하여 다음 과 같이 출력 합 니 다.
:"1 2" "3 4" "5 6"
:
:
:"1
:2"
:"3
:"1 2" "3 4" "5 6"
이상 적 인 가 치 를 얻 지 못 한다.
마지막 으로 제 가 얻 는 방법 을 시도 해 보 겠 습 니 다.
#/!bin/bash
echo " :${1}"
echo " :${2}"
echo " :${3}"
test() {
echo " :${*:1:2}" # 1 2
echo " :${*:3:2}" # 3 2
echo " :${*:5:2}" # 5 2
}
test $*
echo :$*
:sh test.sh "1 2" "3 4" "5 6"
:
:1 2
:3 4
:5 6
:1 2
:3 4
:5 6
:1 2 3 4 5 6
${*: 시작 위치: 매개 변수 개수} (매개 변수 개 수 를 지정 하지 않 으 면 가 져 온 매개 변 수 는 시작 위치 에서 끝 위치 까지) 원 하 는 결 과 를 실현 할 수 있 지만, 존재 하 는 문 제 는 매개 변수 에 있 는 빈 칸 의 개 수 를 명확 하 게 알 아야 합 니 다. sh test. sh "12"3 을 실행 해 야 합 니 다. 45 ""67 "은 코드 만 수정 할 수 있 기 때문에 간접 적 으로 여러 개의 값 을 전달 하 는 것 을 피 할 수 있 습 니 다.그러나 이런 방식 이 존재 한 다 는 것 을 알 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.