小编Joh*_*lla的帖子

需要 sudo 的脚本是否应该在没有它的情况下失败,或者使用 sudo 和提示?

我有一个脚本,它可以让我对背光亮度进行细粒度控制,并且需要sudo运行。本质上是这样的:

backlight="/sys/class/backlight/acpi_video0/brightness"
echo $1 | tee $backlight
Run Code Online (Sandbox Code Playgroud)

并住在~/bin/backlight-adjust. 该脚本需要sudo特权,因为tee $backlight正在写入特权位置。因此,如果不使用sudo.

这种方法有一个问题,因为我不能随便跑sudo backlight-adjust,因为~/bin不在$PATHsudo环境下,只有在我的环境。所以我必须跑步sudo env "PATH=$PATH" backlight-adjust或类似的东西。

或者,我可以这样写:

backlight="/sys/class/backlight/acpi_video0/brightness"
echo $1 | sudo tee $backlight
Run Code Online (Sandbox Code Playgroud)

并提示我输入密码。

第二种方法对我来说效果更好,因为我不必记得输入 sudo;它会提示我。我可以保持我的$PATH完好无损。总体而言,这感觉更方便,但有什么理由我不应该采用第二种方式吗?

(我正在运行 Xubuntu 14.04,我的 shell 是 GNU bash 4.2.45,如果这有区别的话。)

bash sudo shell-script

26
推荐指数
2
解决办法
2074
查看次数

是否有类似“时间”的东西也记录 I/O 和 CPU?

我可以非常快速地监视进程的运行时间time

x@y ~ $ time foo

real        0m14.299s
user        0m4.770s
sys         0m0.440s
Run Code Online (Sandbox Code Playgroud)

有没有办法可以获取记录到 STDOUT 的参数的 I/O 和 CPU 使用率的相同数据?一个简单的命令或实用程序time是理想的,我只传递我想要运行的东西的参数:

x@y ~ $ stats foo

wallclock runtime     0m14.299s
I/O reads             290,420 KB
I/O writes            239,429 KB
peak CPU usage        18.62%
mean CPU usage        1.44%
# etc.
Run Code Online (Sandbox Code Playgroud)

statistics time command time-utility

19
推荐指数
1
解决办法
3250
查看次数

标签 统计

bash ×1

command ×1

shell-script ×1

statistics ×1

sudo ×1

time ×1

time-utility ×1