我有一个将元素分配给workspace[i]
相应“标签”的函数。例如,如果workspace[3]
名称为“firefox”,它将在名称“firefox”下划线,如果没有,则没有下划线。在函数外部和主while
循环内部,这完美地工作,如下所示:
# dummy assignment for workspace_raw[i]
workspace_raw[1]=firefox
# code without function
boolean_check=false
for (( i=0 ; i <= 15 ; i++ ))
do
workspaces[i]="${workspace_raw[i]}"
if [ "${workspaces[i]}" == "firefox" ]
then
boolean_check=true
else
false
fi
done
if $boolean_check
then
workspace_firefox="\u3firefox\u0"
else
workspace_firefox="\u0firefox\u0"
fi
但是,将功能放入函数中并使用参数调用它绝对不会执行任何操作,但也不会显示错误。这是我在函数中使用的代码,它不起作用:
# dummy assignment for $workspace_raw[i]
workspace_raw[1]=firefox
# assign name for function argument
tag_name1=firefox
# the function
assign_workspace()
{
tag=$1
boolean_check=false
for (( i=0 ; i <= 15 ; i++ ))
do
workspaces[i]="${workspace_raw[i]}"
if [ "${workspaces[i]}" == "$tag" ]
then
boolean_check=true
else
false
fi
done
if $boolean_check
then
declare workspace_$tag="\u3test$tag\u0"
else
declare workspace_$tag="\u0test$tag\u0"
fi
}
# call function with argument
assign_workspace $tag_name1
不知道该怎么做。由于该函数的代码在硬编码到主循环中时有效,所以我觉得我在代码的某个地方出现了语法错误。如有必要,这是整个脚本:http: //pastebin.com/39WmPUvi
谢谢您的帮助!