- PR -

戻り値

1
投稿者投稿内容
QQVGA
会議室デビュー日: 2004/12/21
投稿数: 19
投稿日時: 2005-10-25 23:38
こんにちは。 Linuxユーザです。

教えてくださいまし〜〜。
faとfbというファイルがありまして、
この2つがまったく同じ場合は、kekkaというファイルに0を
この2つが少しでも異なる場合は、kekkaというファイルに1を
追記したいのですが、うまくいきません。

#!/bin/bash
$ans=`diff fa fb`
if[$ans=0];then
echo &ans>>kekka
elif[$ans=1];then
echo &ans>>kekka
if

という様に記述したのですが、
faとfbに差を付けて実行した所、ansに差の情報が入り、期待していた戻り値(同じとき0、違うとき1)の値が入ってくれません。
ansに戻り値を代入させるには、どのように記述したら良いのでしょうか?

ご回答、よろしくお願いします。
jk
ベテラン
会議室デビュー日: 2005/08/19
投稿数: 94
投稿日時: 2005-10-26 00:59
こんばんは

コード:

#!/bin/bash

diff fa fb > /dev/null
echo $? >> kekka



じゃダメなんですか?
ただし、何らかのエラーが起きたときは2が入りますけど..

ans=`diff fa fb` では標準出力されたものが$ansに入ります。
man diffの最後のほうに書かれえている返り値というのはシェル変数 $?に入りますよ。
diffに限らず シェルではそうですけど..

それと細かいですが、何箇所か &ans になっていますがtypoですよね?
$ans=`diff fa fb`の書式も間違いです
代入するときは $はいりません。参照時にだけつけます。


[ メッセージ編集済み 編集者: jk 編集日時 2005-10-26 01:05 ]
QQVGA
会議室デビュー日: 2004/12/21
投稿数: 19
投稿日時: 2005-10-26 21:45
こんばんは、

jkさん、ありがとうございました。
おかげさまで、うまくいきました。感謝!
1

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