次のコードは、ディレクトリ内の各ファイルを出力する代わりに、/home/user/dir/* @(${host}|${hostname}) * を出力しています。
#!/usr/bin/ksh
host=foo
hostname=bar
config_path="/home/user/dir"
search=$config_path/*_@(${host}|${hostname})_*
for file in $search
do
echo $file
done
そして、私がこのようにすればうまくいきます
#!/usr/bin/ksh
host=foo
hostname=bar
config_path="/home/user/dir"
#search=$config_path/*_@(${host}|${hostname})_*
for file in $config_path/*_@(${host}|${hostname})_*
do
echo $file
done
3つ質問があります。
1)パターンが変数に割り当てられているときに文字列を返すのはなぜですか?
2) 私はこのパターンを非常に多くの場所で使用しているので、変数に割り当てる方がよいでしょう。これを修正する方法は?
3) ksh の新しいバージョンでは修正されていますか?
SunOS サーバー 5.10 Generic_147441-23 i86pc i386 i86pc を使用しており、次のコマンドを入力して ksh バージョンを取得しました。
$ set -o vi
$ Version M-11/16/88i