다음 bash 스크립트가 있습니다. >>는 덮어 쓰는 대신 기존 파일에 명령 출력을 추가하는 데 사용되지만이 경우에는 어떻게됩니까? 이 스크립트는 일부 exe 파일을 호출하여 한 형식에서 다른 형식으로 변환합니다. 각 파일에는 수년이 있으므로 파일 이름을 확인하여 각 파일을 반복합니다. 또한이 스크립트를 실행하면 "모호한 리디렉션"이 발생합니다.
#!/bin/bash
source $HOME/.bashrc
jobout=${1}
joberr=${2}
# Set some paths and prefixes
yr_bgn=2000
yr_end=2000
yr=${yr_bgn}
pth_data='/mnt/'
pth_rst='/mnt/'
while [ ${yr} -le ${yr_end} ]
do
./executable1 ${pth_data}file${yr}-${yr}.nc ${yr} ${pth_rst} 1>> ${jobout} 2>> ${joberr}
./executable2 ${pth_data}file${yr}-${yr}.nc ${yr} ${pth_rst} 1>> ${jobout} 2>> ${joberr}
./executable3 ${pth_data}file${yr}-${yr}.nc ${yr} ${pth_rst} 1>> ${jobout} 2>> ${joberr}
let yr=${yr}+1
done
1>>
그리고 2>>
이 경우 표준 출력 (파일 기술자 1)과 표준 오차 (파일 기술자 2)에 특정 파일 디스크립터에 대한 리디렉션은이다.
따라서 스크립트는 모든 "표준"메시지를로 리디렉션 ${jobout}
하고 모든 오류 메시지를 로 리디렉션합니다 ${joberr}
. >>
두 경우 모두 사용하면 모든 메시지가 각 파일에 추가됩니다.
주 ${jobout}
및 ${joberr}
스크립트 (에 두 개의 명령 줄 매개 변수에서 그 값을 ${1}
하고 ${2}
당신이 메시지를 저장하는 데 사용할 파일을 지정해야하므로). 매개 변수가 제공되지 않으면 스크립트는 사용자가 본 "모호한 리디렉션"오류 메시지를 생성합니다. 스크립트는 매개 변수가 제공되었는지 실제로 확인하고 그렇지 않으면 다음과 같은 적절한 오류 메시지를 생성해야합니다.
if [ -z "$1" -o -z "$2" ]; then
echo "Log files for standard and error messages must be specified"
echo "${0} msgfile errfile"
exit 1
fi
스크립트 시작 부분에.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다