![]() |
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| コマンドと終了ステータスの問題に移動 | visingha | シェルプログラミングとスクリプティング | 10 | 2008年9月13日 09:08午後 |
| コマンドと終了ステータスの問題に移動 | visingha | UNIXのダミー質問と回答のため | 1 | 2008年9月12日 03:14午前 |
| Unixのシェルで実行するJavaのクラスパスの状態を終了 | mmcds | 高レベルのプログラミング | 2 | 2007年8月2日 11:06午後 |
| シェルスクリプトの終了ステータスをチェック | kdipankar | シェルプログラミングとスクリプティング | 2 | 2006年5月9日 02:08午前 |
| 問題のステータスで終了 | diganta | シェルプログラミングとスクリプティング | 1 | 2005年9月28日 09:34午前 |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
||||
|
shを再帰的にサブシェルの終了ステータスの問題
やあ
私はサブシェルとして実行してこれを再帰的な関数の終了ステータスを検出しようとしている。以下に私が実行して...のファイルは、シェルスクリプトの一部上場が残念はまだ少し息切れ長: - コード:
#!/bin/sh
addFile()
{
fileName="${1##*/}" # Extract filename from path.
if [ $fileName == "phil" ]
then
return 1 #Kick off error...
else
return 0
fi
}
addCommitFiles()
{
# Traverse to database directory or below
cd "$topDir/$1"
if [ $? != 0 ]
then
echo "topDir error $topDir/$1"
exit 1 # Treat as fatal error.
fi
# List all files/dirs in this directory.
ls | while read i
do
# Check if directory.
if [ -d "$i" ]
then
# Pass in full relative path to topDir.
( addCommitFiles "$1/$i" )
ret1=$? # This is never non-zero???
echo "RET=$ret1 != 1"
if [ $ret1 != 0 ]
then
echo "ERR2???"
exit 1 # Treat as fatal error.
fi
echo "ERR3"
else
echo "${rootDir}/$1/${i}"
addFile "$1/$i"
if [ $? != 0 ]
then
echo "ERR1"
exit 1 # We get this error and would exoect
fi
fi
done
exit 0
}
# Main
usrNam="XXX"
topDir=`pwd`
rootDir="./"
(addCommitFiles "./$usrNam")
if [ $? != 0 ]
then
echo "ERROR"
else
echo "OK"
fi
XXXの ファイルxyzを ディレクトリ\u003d YYY ファイル× 1 y1 Z1は ディレクトリ\u003d寝る ファイルフィルX2のy2 z2 私は、シェルスクリプトを実行する私は、出力を得る: - XXXの.//./ / 1 XXXの.//./ / b XXXの.//./ / ç .//./ XXX/YYY/x1 .//./ XXX/YYY/y1 .//./ XXX/YYY/z1 XXXの.//./ / YYY /寝る/フィル ERR1 RET \u003d 0 ! \u003d 1 ERR3 RET \u003d 0 ! \u003d 1 ERR3 [ OK ]を 私は理解することdontなぜ私は" ERR2 ???".を取得しないでください私は1を返しますERR1を得るためaddFileけど、 ERR2を得ることを期待していたか? "を終了し、これは、サブ1で終了します。 私はここに明らかにすることができます場合、誰も感謝すると何か足りないのですか? ありがとう philpが編集最終; 2009年1月7日に 05:58午前..理由:追加コードのタグ |
| ブックマーク |
| スレッドツール | このスレッドを検索 |
| 表示モード | このスレッド |
|
|