- PR -

shにおけるperlの戻り値

1
投稿者投稿内容
saratoga
常連さん
会議室デビュー日: 2001/11/26
投稿数: 28
投稿日時: 2003-10-28 10:53
こんにちは。
shにおける戻り値の受け取り方で質問があります。

下記のようなソースで、
実際にperlから「exit 2;」で戻り値を返しています。

---ソース START---
$/home/xxx/***.pl ***.tsv

if [ $? -eq 2 ]; then
log
fi
---ソース END---

しかし、ifの中に処理が入ってくれません。
$?で戻り値を受け取れると本で確認したのですが、
何か受け取り方に問題があるでしょうか?

どなたかご教授下さい。
よろしくお願いします。
saratoga
常連さん
会議室デビュー日: 2001/11/26
投稿数: 28
投稿日時: 2003-10-28 12:03
追伸です。

「echo $?」を確認すると、なぜか0になっています。
この時点でおかしいということでしょうか?
それとも受け取り方でしょうか?

ご教授お願いします。
saratoga
常連さん
会議室デビュー日: 2001/11/26
投稿数: 28
投稿日時: 2003-10-28 17:47
exitではなく、dieを使うことで解決しました。
勉強不足でした・・・。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2003-10-28 17:46
localhost$ cat tmp.pl
#!/usr/bin/perl

exit 2;
---------------------------------------------
localhost$ cat tmp.sh
#!/bin/sh

./tmp.pl

if [ $? -eq 2 ]; then
echo 2
fi

exit
--------------------------------------------
localhost$ ./tmp.sh
2
localhost$

いや、うちの環境じゃちゃんと 2 が出てますな・・・
1

スキルアップ/キャリアアップ(JOB@IT)