在su的命令中运行bash函数

Att*_*yak 13 bash shell su

在我的bash脚本中,我以另一个用户身份执行一些命令.我想用bash函数调用su.

my_function()
{
  do_something
}

su username -c "my_function"
Run Code Online (Sandbox Code Playgroud)

上面的脚本不起作用.当然,my_function里面没有定义su.我的一个想法是将函数放入一个单独的文件中.你有更好的想法,避免制作另一个文件?

Pau*_*ce. 14

您可以导出该函数以使其可用于子shell:

export -f my_function
su username -c "my_function"
Run Code Online (Sandbox Code Playgroud)