私は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
停止の出力と私です:whiptailメニューはトンかのように(メインページに戻ります彼は、セットアップが行われ、私は、あまりにもログに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'にバンドルします。実行されたコマンドをログに記録します。それぞれの行番号は前に付いています。 –