小编Nic*_*k S的帖子

Bash 有条件地使用 sudo

所以我有一个 bash 脚本,根据它所针对的版本,可能需要使用 sudo 运行一些命令。我已经提出了几个选项,但我想我正在寻找其他建议。这是我正在做的事情的示例脚本:

每个命令的版本条件检查

#!/usr/bin/bash

# script is run by "user1"

version="$1"
export version

if [[ "$version" -eq "10" ]]
then
  cp /tmp/file.txt /data/application/files/file.txt
elif [[ "$version" -eq "11" ]]
then
  sudo -u user2 cp /tmp/file.txt /data/application/files/file.txt
fi

exit 0
Run Code Online (Sandbox Code Playgroud)

使用评估

#!/usr/bin/bash

# script is run by "user1"

version="$1"
export version
export run_as=""

if [[ "$version" -eq "10" ]]
then
  run_as=""
elif [[ "$version" -eq "11" ]]
then
  run_as="sudo -u user2"
fi

eval "$run_as" cp /tmp/file.txt /data/application/files/file.txt

exit …
Run Code Online (Sandbox Code Playgroud)

bash sudo eval

6
推荐指数
1
解决办法
1161
查看次数

标签 统计

bash ×1

eval ×1

sudo ×1