下面的代码是打印/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泛型_147441-23 i86pc i386 i86pc,并通过键入以下命令获得ksh版本。
$ set -o vi
$ Version M-11/16/88i发布于 2013-01-10 11:51:25
要解决这个问题,您可以这样做:
for file in $(eval echo $search)https://stackoverflow.com/questions/14256995
复制相似问题