문제

이것은 다른 사람이 쓴 원유 Korn Shell 스크립트입니다. 나는 쉘 구문을 사용하는 것에 대해 많이 모르고 이것이 가능한지조차 확실하지 않습니다.

이 파일을 실행하고 날짜를 제출할 수있는 방법이 있습니까? 스크립트에 수동으로 가서 매번 변경할 필요가 없습니까?

예를 들어, "1/12/09"를 사용자 프롬프트에서 가져온 변수로 바꾸고 싶습니다.

#!/bin/ksh
./clear_old
./rooms_xls.pl 1/12/09
cd doors
./doors_xls.pl 1/12/09
도움이 되었습니까?

해결책

날짜를 매개 변수로 전달하는 것과 반대로 프롬프트를 원한다면 다음 논리 (또는 유사한 것)를 사용하십시오.

date=
while [ -z $date ]
do
    echo -n 'Date? '
    read date
done

해당 루프는 사용자가 간단한 반환 이외의 무언가 (무엇이든)를 입력 할 때까지 날짜를 계속 프롬프트합니다.

간단한 검증을 추가하고 KSH93 이상의 KSH 버전을 사용하고 있다면 다음과 같은 작업을 수행하십시오.

date=
while [ -z $date ]
do
    echo -n 'Date? '
    read date
    if [[ $date =~ ^[0-9]{1,2}/[0-9]{1,2}/[0-9]{1,4}$ ]]
    then
        break
    fi
    date=
done

보다 KSH93 남자 페이지 더 많은 정보를 위해서.

다른 팁

일반적으로 쉘 스크립트 명령 줄 인수는 다음과 같이 액세스 할 수 있습니다.

$0, $1, ... $N

따라서 다음과 같은 하드 코드 날짜를 교체 할 수 있습니다.

./room_xls.pl $1

그리고처럼 실행하십시오

./myscript 1/12/09

$ 1은 첫 번째 명령 줄 인수입니다. 이것은 최대 9 달러입니다. 이것을 확인하십시오 지도 시간 더 기본적인 KSH 구문.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top