以下代码打印 /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
我有三个问题。
1)为什么当模式分配给变量时它返回字符串?
2)我在很多地方都在使用这种模式,所以最好给它分配一个变量。如何解决这个问题?
3) 在较新版本的 ksh 中是否已修复?
我正在使用 SunOS 服务器 5.10 Generic_147441-23 i86pc i386 i86pc 并通过键入以下命令获取 ksh 版本。
$ set -o vi
$ Version M-11/16/88i