下面是函数,它给出了大于值4的目录。(ver = 4)
#!/bin/ksh
declare -a folders_res
declare -a dirs
check_minor_version(){
dirs=($(find ${my_directory}/${my_dir} -type d -printf "%f\n" | sed '1d' |sort))
for i in "${dirs[@]}"; do
if [ "$i" -gt "${ver}" ]; then
folders_res+=("$i")
fi
done
if [ ${#folders_res[@]} -eq 0 ]; then
echo ${ver}
else
echo ${folders_res[@]}
fi
}
函数按预期工作,并给出输出值5 6 7
但是在'for'循环中调用函数输出时,我收到以下消息 - “无法打开文件”5 6 7 / my.sql“”
for i in "$(echo $(check_minor_version) )"; do
${sqlplus} username/password@service_id << EOF
SET WRAP OFF
@$i/my.sql
exit;
EOF
done
是不是可以在ksh中迭代函数的输出,或者我做了些傻事,谢谢。
你应该删除引号"
,如下所示:
for i in $(echo $(check_minor_version) ); do
...
并删除echo
,这是无用的:
for i in $(check_minor_version); do
...