终端上的执行函数
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 脚本中。
我已经创建了一个 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 脚本中。