![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| 登録: GUIによっては、スクリプトを実行する。 | shyam.appalla | シェルプログラミングとスクリプティング | 2 | 2008年5月30日 10:56午後 |
| 各Sybaseのデータベースクエリを実行した後、コンソールにプリントをループインデックス | Alaeddin | シェルプログラミングとスクリプティング | 2 | 2007年12月16日 04:30午前 |
| [ AIXの]スクリプトを実行する | piooooter | UNIXのダミー質問と回答のため | 1 | 2006年5月26日 12:53午前 |
| スクリプトを実行する | big123456 | シェルプログラミングとスクリプティング | 1 | 2005年6月3日 07:32午前 |
| rshを使用するスクリプトを実行するため | frustrated1 | シェルプログラミングとスクリプティング | 6 | 2003年10月2日 08:24午前 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
2つ目のループを実行するスクリプトはない
私は、いくつかのサーバからバックアップファイルを受信したサーバーがある。圧縮される前に、各サーバーで、いくつかのファイルを受信しているとして、独自のディレクトリーへのファイルのSCPする必要があります。 tarファイルが必要に捨てられる。ファイルは、 tarの場合は、 SCPが、ファイル'フラグ'という名前が完了するとzipファイルには、 SCPが完全であることを示すのに送信されます。
次のスクリプトと。 tarファイルのファイルを、任意の既存のフラグをチェックするはずだと。 bzip2 tarファイルを実行する上で発見した。 特定の問題は、最初のwhileループでフラグがない場合、またはtarファイルが開始されていない2つ目のループが検出されます。最初のループの場合は、データの両方のループが期待どおりに実行して存在しています。 ( 2つのサーバーの現在のデータをテストするためにのみ)が含まれています。 私は見ていると私のロジックでエラーを探し、それが私eludes 。誰か私の盲点を指摘するもらえますか? 読み込まれてファイルのデータは、コードの後に追加されます。 ありがとう ゴツンと打つ コード:
#!/bin/bash
#
# set -n
set -x
##########################################################
####################### FUNCTIONS ######################
##########################################################
file_exists () {
echo "ENTERING FILE_EXISTS"
echo "the value of \$1 is ${1}"
echo "the value of \$2 is ${2}"
if [ -e ${1} ] #test for the flag file
then
if [ -e ${2} ] #test for the .tar file
then
`bzip2 ${2}` #bzip the .tar file
`rm ${1}` #remove the flag file
else #no .tar file found
mail -s "No ${2} file found" thumper@somewhere.net
fi
else #no flag file found
mail -s "No ${1} file found" thumper@somewhere.net
fi
return 0
}
#### end
##########################################################
#################### MAIN ################################
##########################################################
while IFS=: read dir sname flag ext
do
VAL_1="/$dir/$sname/$flag"
VAL_2="/$dir/$sname/$ext"
echo ${VAL_1}; echo ${VAL_2}
# echo "Calling file_exists"
file_exists ${VAL_1} ${VAL_2}
# echo "Exited file_exists"
echo "VAL_1 is ${VAL_1}"
echo "VAL_2 is ${VAL_2}"
echo "\$? is $?"
done < /root/scripts/bz-data
# End of script
データを読み取るステートメント /ルート/スクリプト/ベリーズデータ アーカイブ:依田:フラグ: *.タール アーカイブ:固い:フラグ: *.タール |
|
||||
|
引用:
とにかくのOSである # uname - 1 Linuxのスポーツ2.6.11.4 - 21.17 -デフォルト# 1金4月6日午前8時42分34秒UTCに2007 i686のAthlonのI386 のGNU/リナックス また、 bashのバージョンです # bashの-バージョン のGNU bashのは、バージョン3.00.16 ( 1 ) - ( i586 -のSUSE - linuxの)リリース 規約Copyright ( C ) 2004 Free Software Foundationは、株式会社 と、 bashのバージョンです 誰も私に感謝する場合には、この問題の原因を知っている。 おかげで再び ゴツンと打つ |