シェルの変数の格納・呼び出しについてお伺いさせていただきたく思います。
現在作成しているシェルは以下の三つに分かれています。
例
message.sh
lang
1#!/bin/bash 2 3MSG001="001 処理開始" 4MSG002="002 処理終了" 5MSG004="003 ${cp_from}の${cp_to}へのコピーに失敗しました。" 6...
ログなどに出力するメッセージを上記のような変数に格納してます。
fnc.sh
lang
1source message.sh 2 3# $1:コピー元 4# $2:コピー先 5# 失敗した場合ログに内容を出力 6_glo_cp(){ 7 cp_from=$1 8 cp_to=$2 9 cp -p $cp_from $cp_to 10 if [[ $? -ne 0 ]]; then 11 echo ${MSG004} > ./log.log 12 fi 13...
共通関数ファイルです。上記にはざっくりとコピー用関数を書きました。
run.sh
lang
1#!/bin/bash 2source ./fnc.sh 3 4echo ${MSG001} > ./log.log 5# ファイルをコピー 6_glo_cp /from/cp_test.dum /to/cp_test.dum 7 8echo ${MSG002} > ./log.log 9
実際に処理を行うシェルです。
共通関数を読み込んでから各処理を実行します。
質問
実際に上記のようなファイルを作成し、実行してみたところ
ログに書き出されていたメッセージは
003 のへのコピーに失敗しました。
と_gro_cp
で記述していた変数が格納されていませんでした。
なぜこのような結果になってしまったのでしょうか?
また、上記のような構成で正しくメッセージを出力したい場合はどのような記述の仕方をすればよろしいでしょうか。
質問内容について分かりづらいところなどありましたら申し訳ございません。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/21 04:06