Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何导出bash脚本的每个函数以与gtkdialog一起使用?_Bash_Shell_User Interface_Export - Fatal编程技术网

如何导出bash脚本的每个函数以与gtkdialog一起使用?

如何导出bash脚本的每个函数以与gtkdialog一起使用?,bash,shell,user-interface,export,Bash,Shell,User Interface,Export,我有一个bash脚本的形式: cat << EOF > stackoverflow_source.sh #!/bin/bash function f1 () { echo This is the first function. } function f2 () { echo This is the second function. } EOF 我得到: $ f1 This is the first function. 但是,当我在gui

我有一个bash脚本的形式:

cat  << EOF > stackoverflow_source.sh
#!/bin/bash
function f1 () {
         echo This is the first function.
}
function f2 () {
         echo This is the second function.
}
EOF
我得到:

$ f1
This is the first function.
但是,当我在gui中单击相应的按钮时(即使在获取脚本之后),我得到

当我导出函数时

$ export -f f1 && export -f f2
它们在gui中工作(
sh stackoverflow\u gui
并单击它们的按钮,回显文本)

是否有方法导出我的
stackoverflow\u source.sh
脚本中的每个函数?(在我真正的源代码脚本中,我有数百个函数,我不想一个接一个地执行)。
或者,是否有更好的方法来做我想做的事?

这应该适合您:

for func in $(declare -F | cut -f3 -d' ')
do
    export -f $func
done
或者,更简洁(但可读性较差):

sh: f1: command not found
$ export -f f1 && export -f f2
for func in $(declare -F | cut -f3 -d' ')
do
    export -f $func
done
export -f $(declare -F | cut -f3 -d' ')