我已经创建了一个shell脚本,我想在终端上Exec
一个函数。
例如:
function update () {
sudo apt update
}
function Exec () {
xfce4-terminal --maximize -x "$1"
}
但是当我执行这个时:
Exec "update"
或Exec "$(update)"
我收到此错误:Failed to execute child process "update" (No such file or directory)
答案 0 :(得分:1)
你不能这样做。
update
函数仅存在于shell进程中。 xfce4-terminal
进程无法查看。 -x
的参数必须是可执行命令,而不是shell函数。
您可以做的是创建一个与您的update
函数完全相同的shell脚本(确保它可执行并安装在$PATH
中的某个位置)并传递名称那个shell脚本到xfce4-terminal
。
或者,在这种特殊情况下,您可以这样做:
xfce4-terminal --maximize -x sudo apt update
或者您可以将sudo apt update
作为参数传递给Exec
函数。但总的来说,对外部程序可见的一系列shell命令的唯一方法(好吧,差不多)就是将它们包装在shell脚本中。