小编Mir*_*lav的帖子

如何使用sudo执行bash函数?

我尝试导出该函数,然后使用bash执行它,但这不起作用:

$ export -f my_func
$ sudo bash -c 'my_func' 
bash: my_func: command not found
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用没有sudo的bash运行该函数(bash -c'my_func'),它可以工作.

任何的想法?

bash sudo function

24
推荐指数
4
解决办法
1万
查看次数

eash中的Bash,CTRL + C不会中断主脚本

在我的bash脚本中,我正在运行一个存储在$cmd变量中的外部命令.(它可能是任何东西,甚至是一些简单的bash oneliner.)

如果在运行脚本时按下ctrl+ C,我希望它杀死当前正在运行$cmd但仍应继续运行主脚本.但是,我想保留在主脚本运行时使用ctrl+ 杀死主脚本的选项C.

#!/bin/bash
cmd='read -p "Ooook?" something; echo $something; sleep 4 ' 
while true; do
    echo "running cmd.."
    eval "$cmd"     # ctrl-C now should terminate the eval and print "done cmd"
    echo "done cmd"
    sleep 5         # ctrl-C now should terminate the main script
done
Run Code Online (Sandbox Code Playgroud)

任何想法如何做一些不错的bash方式?

根据答案应用的更改:

#! /bin/bash

cmd='read -p "Ooook1?" something; read -p "Oook2?" ; echo $something; sleep 4 ' 
while true; do
    echo …
Run Code Online (Sandbox Code Playgroud)

bash signals bash-trap

5
推荐指数
1
解决办法
4604
查看次数

标签 统计

bash ×2

bash-trap ×1

function ×1

signals ×1

sudo ×1