'~'구분 기호로 매개 변수를 사용하고 문자열을 분할 한 후 값을 배열에 삽입하려고하는 스크립트를 작성하고 있습니다. 나는이 문제에 대해 꽤 많은 게시물을 가지고 있으며, 나는 거의 거기 있지만 거기에는 실패한 경우가있다. 여기에 세부 사항이 있습니다.마지막으로 비어있는 문자열은 delim에 의해 배열로 문자열을 분할 할 때 포함되지 않습니다.
myScript.sh
#!/bin/bash
tmpIFS=$IFS
IFS="~"
array=($1)
IFS=$tmpIFS
echo "${#array[@]}"
처형
내가 원하는 것입니다$ ./myScript.sh "A~B"
$ 2
. 그러나 내가 할 때
$ ./myScript.sh "A~"
$ 1
나는 크기 2의 배열을 다시 가질 것이고 마지막 셀은 빈 문자열이 될 것으로 예상했다.
어떻게하면됩니까?
이 스크립트에서 일반적으로 달성하고자하는 것은 10 개의 쿼리 매개 변수를 전달하여 curl을 사용하여 http 요청을 수행하는 것입니다. 스크립트에 10 개의 매개 변수가있는 대신 지정된 순서로 문자로 구분 된 하나의 매개 변수로 데이터를 가져 오려고했습니다.
감사
아마도 궁극적으로 달성하려는 내용에 대한 추가 정보가 포함 된 경우 몇 가지 대안을 제시 할 수 있습니다. –
@TomFenech 질문이 업데이트되었습니다. – NikosDim
스크립트에 10 개의 매개 변수가 있고 매개 변수 하나를 가지지 만 직접 분리하는 것의 차이점은 무엇입니까? './myScript.sh A B' 만하고'$ 1'과'$ 2'를 통해 당신의 주장에 접근 할 수 있습니다. './myScript.sh A '''또는'./myScript.sh A' 만했다면'$ 2'는 비어있게됩니다. –