あまり本格的なシェルスクリプトは書いたことないので、bash(bourneシェル系)とtcsh(Cシェル系)の宗教戦争とかよく分かりませんが、むかしSolarisからLinuxに移ったときに戸惑ったのが、環境変数の設定コマンドでした。ついでに言うとDOSだとまた違うのでややこしいです。特に展開するときパーセント記号で囲むとか。
sh/bashの場合
$ export HOGE=1234567890 $ echo $HOGE 1234567890 $ printenv HOGE 1234567890
> setenv HOGE 1234567890 > echo $HOGE 1234567890 > printenv HOGE 1234567890
DOSの場合
> set HOGE=1234567890 > echo %HOGE% 1234567890 > printenv HOGE 1234567890
またシェル変数に関してもbashとtcshでは異なります。DOSにはそもそも環境変数とシェル変数という区別がありませんね。
sh/bashの場合
$ PIYO=ABCDEFG $ echo $PIYO ABCDEFG $ export PIYO ←これによってシェル変数を環境変数として設定する
> set PIYO=ABCDEFG > setenv PIYO HIJKLMN ←シェル変数と環境変数は別物 > echo $PIYO ABCDEFG > printenv PIYO HIJKLMN