0
を使用してアトミック機能を置き換えることができます:私のテキストでは、その後、どのように私が最初にシェルスクリプトに
[[email protected] ~]# cat calc.sh
#! /bin/sh
calc_func()
{
i=1;
j=2;
if [ $i -gt 0 ];then
return $(($i+$j));
fi
}
calc_func
echo $?
と:私のシェルスクリプトで
[[email protected] ~]# cat calc.txt
sub_func()
{
i=100;
j=200;
if [ $i -gt 0 ];then
return $(($i-$j));
fi
}
、今、私はfunciton本体を交換したいのcalc.txtにsub_funcの本体を持つcalc.shの中でcalc_funcという名前を付けました。
[[email protected] ~]# cat calc.sh
#! /bin/sh
calc_func()
{
i=100;
j=200;
if [ $i -gt 0 ];then
return $(($i-$j));
fi
}
calc_func
echo $?
私はシェルスクリプトでそれを達成したいのですが、どうすれば修正できますか?ヒント:ソースまたはエクスポートは使用できませんでした。
「ソース」を使用できないのはなぜですか? – user1934428
awkを使って2つの関数を '{}'で分割し、配列に格納しておけば、もう一方の関数コードを追加するだけです。 – hedgehog
私はそれを手に入れません...関数自体は1つの場所になければなりません(そして手で編集することができます)...関数へのすべての呼び出しをsedに簡単に置き換えることができます(関数を含むファイルのソースがたくさんある場合) viからの単純な置き換え、または好きなエディタが1つのファイルであればそれを使うことができます。 – louigi600