이미 파일 하나를 생성하기 때문에, 당신은 당신이 만드는 형식을 수정할 수 있습니다 필요한 변수를 다음 형식으로 작성하십시오.
userID="Name Surname"
pwd=Passwd
study_id=test
isid=testid
그런 다음 dot 명령 (Bourne 쉘, Korn 쉘, Bash) 또는 소스 (C 쉘, Bash 다시)를 사용하여 스크립트로 읽을 수 있습니다. 공백을 포함하는 값을 따옴표로 묶어 사용하십시오. 작은 따옴표를 사용할 수도 있지만 "Martin O'Rourke"를 다루는 것이 더 어렵습니다. 데이터 소스를 신뢰할 수 없다면 안전하기 전에 많은 정리 작업이 필요합니다.
그런 다음 변수가 행의 ${CMD}
에 전달되는 방법을 지정해야합니다. 다른 까다로운 항목은 어떤 변수가 설정 되었는지를 아는 것입니다. 왜냐하면 아마도 그 변수 만 전달하고 가능한 모든 변수는 전달하지 않기를 원하기 때문입니다. 그리고 논쟁의 공간은 분명히 사물을 복잡하게 만듭니다.
배시 4.x (3.x는 충분하지 않음)가있는 경우 연관 배열을 사용할 수 있습니다. - 인수 있습니다
name="Martin O'Rourke"
id=21131
testid=P/23/41
isis=N23-45112
및 al
그의 출력이 같이 있었다 인수 한 줄에 하나씩, 메아리 프로그램입니다 CMD=al
로 실행하면 데이터 파일을 감안할 때
CMD="$FIX_HOME/shell.ksh"
declare -A array
. file1 # Set variable values
for name in $(sed 's/=.*//' file1) # Get variable names
do
x=$(eval echo "\$$name")
array[$name]="-$name=$x"
done
echo "================= Start ${CMD} ================"
${CMD} "${array[@]}"
echo "================= Exit from ${CMD} <$?> ================="
당신이 배쉬의 이전 버전이있는 경우
$ bash-4.1 test.script
================= Start al ================
-name=name
-isis=N23-45112
-id=21131
-testid=P/23/41
================= Exit from al <0> =================
$
, 당신은 인덱스 배열, 힘의 시간을 사용해야합니다 : 사용자가 입력 한 순서에없는 커맨드 라인에서 요소의 순서에 따른 이점이 결정적 일 것입니다. 단점은 고유 색인을 생성해야한다는 것입니다.
그러나 이것은 과격하게 복잡 할 수 있습니다.
CMD="$FIX_HOME/shell.ksh"
echo "================= Start ${CMD} ================"
${CMD} $(<file1)
echo "================= Exit from ${CMD} <$?> ================="
또는, 옵션 이름 앞에 대시를 원하는 경우 :
CMD="$FIX_HOME/shell.ksh"
echo "================= Start ${CMD} ================"
${CMD} $(sed 's/^/-/' file1)
echo "================= Exit from ${CMD} <$?> ================="
이이 일을 할 수있는 다른 방법이 있지만, 당신이 진짜로보고 싶어에 따라 달라집니다 ${CMD}
의 인수 목록
고마워요. 조나단 - 1 단계에서 제안한 바가 있소.내가 사용하고있는 버전이 연관 배열 또는 색인 배열을 처리 할 것인지 확실하지 않은 Korn 셸을 사용하고 있습니다. 배열을 사용할 생각 이었지만 자신감이 부족했습니다. 당신이 제공 한 샘플을 고맙게 생각합니다. – Ayla
ksh 쉘을 사용 중입니다. CMD 라인에서 요소의 순서가 중요하기 때문에 고유 인덱스를 생성해야합니다. 다음을 만들었습니다 – Ayla
ksh 셸을 사용하고 있습니다 : CMD 줄에서 요소의 순서가 중요하기 때문에 고유 인덱스를 생성해야합니다. $ (고양이 myfile)에 단어 목록을 만들려면 > 단어 목록 [$ I] = $ word > I = $ ((I +1)) > 완료 질문 : 다음 단어를 추가해야합니까? 동일한 변수에 모든 변수를 배치하는 명령을 설정 하시겠습니까? – Ayla