디렉토리로 변경하고 내 whiptail
대화 상자 화면에서 추가 명령을 실행하려고하지만 내 git 저장소를 복제 한 후 디렉토리로 변경하려고 할 때 스크립트가 죽어 가고있는 것 같습니다.Bash whiptail이 디렉토리를 바꿀 때 죽습니다.
STATUS=0
touch log.txt
while [ $STATUS -lt "100" ]; do
echo "cloning Repo" >> log.txt
git clone [email protected]:abc/repo.git /repo >> log.txt 2>&1
echo "changing directory" >> log.txt
cd /repo >> log.txt 2>&1
echo `pwd`
echo "installing bundler" >> log.txt
gem install bundler --no-ri --no-rdoc >> log.txt 2>&1
((STATUS += 99))
echo $STATUS
done | whiptail --gauge "Setting Up Neo (THIS WILL TAKE SOME TIME)..." 40 78 0
;;
로깅이의 모습, set -x
와 명령 :
:66+STATUS=0
:67+touch log.txt
:149+whiptail --gauge 'Setting Up (THIS WILL TAKE SOME TIME)...' 40 78 0
:68+'[' 0 -lt 100 ']'
:71+echo 'apt-get update'
:73+(( STATUS += 15 ))
:74+echo 15
:77+echo 'apt-get upgrade'
:79+(( STATUS += 15 ))
:80+echo 30
:83+echo 'apt-get -y git-all'
:85+(( STATUS += 15 ))
:86+echo 45
:111+(( STATUS += 30 ))
:112+echo 75
:115+rm -rf /repo
:116+echo 'cloning Repo'
:117+git clone [email protected]:abcd/repo.git /repo
:118+echo 'changing directory'
:119+cd /repo
::120+pwd
:120+echo /repo
:121+echo 'installing bundler'
:122+gem install bundler --no-ri --no-rdoc
:148+echo 100
:68+'[' 100 -lt 100 ']'
:5+true
::11+whiptail --title 'Configuration Menu' --menu 'Choose an option' 40 78 30 1 'Show current configuration.' 2 'Setup Wizard.' 0 Exit
changing directory
에서 log.txt
정지의 출력과 내 채찍 꼬리 메뉴 t 것처럼 (메인 페이지로 돌아갑니다 그는 설정이 완료하지만, 나 또한 너무 로그의 pwd
및 installing bundler
을 볼 수 있기 때문에 그것은) 아니에요된다
cloning Repo
Cloning into '/repo'...
changing directory
그래서 나를 위해 문제 포즈 무슨 일이 일어나고 있는지 진단하는 오류를받지 못했습니다 . 어떤 도움을 주셔서 감사합니다!
bash의 버전은 무엇입니까? 그것이 4.x라고 가정하면, 스크립트 초기에 기본이 아닌 파일 디스크립터 –
에 세부적으로 로그인 할 수 있습니다.'set -e'를 실행 했습니까 (또는 ERR 트랩을 설정 했습니까?)? –
... 이렇게하기 전에,'exec {tracefd}> trace.log; BASH_XTRACEFD = $ tracefd; PS4 = ': $ LINENO +'; set -x'를 입력하고,'trace.log'에 번들합니다. 명령 행을 기록하며 각 행 앞에는 행 번호가 기록됩니다. –