终端上的执行函数

Exec Function on terminal

我已经创建了一个 shell 脚本,我想在终端上 Exec 一个函数。

例如:

function update () {
     sudo apt update
}

function Exec () {
    xfce4-terminal --maximize -x ""
}

但是当我执行这个时:

Exec "update"Exec "$(update)"

我收到此错误:Failed to execute child process "update" (No such file or directory)

你不能那样做。

update 函数仅存在于您的 shell 进程中。 xfce4-terminal 进程对其不可见。 -x 的参数必须是可执行命令,而不是 shell 函数。

你可以做的是创建一个 shell 脚本,它与你的 update 函数做同样的事情(确保它是可执行的并安装在你的 $PATH 中的某个地方)并通过shell 脚本的名称 xfce4-terminal.

或者,在这种特殊情况下,您可以这样做:

xfce4-terminal --maximize -x sudo apt update

或者您可以将 sudo apt update 作为参数传递给 Exec 函数。但总的来说,使一系列 shell 命令对外部程序可见的唯一方法(嗯,几乎)是将它们包装在 shell 脚本中。