linux - 如何使我的环境变量可用于 sudo 命令?

标签 linux bash shell

目前,我有一个加载环境变量的脚本。我是这样采购的:

#!/bin/bash

set -x

# sourcing my env variables
. /etc/profile.d/company_env.sh > /dev/null 2>&1

clear_known_hosts(){
  local known_hosts="${NAGIOS_HOME}/.ssh/known_hosts"
  # clear
  su - nagios -c "echo '' > ${known_hosts}"

}

但是,删除采购部分,因为我不想将其添加到可能创建的每个脚本中,我的 sudo命令找不到我的环境变量,例如 NAGIOS_HOME例如,它是空的。

有什么建议吗?

最佳答案

sudo有选项 -E 或长选项 --preserve-env

Usage: sudo -E command args ...

当然,您需要从父 shell 导出变量,以便 sudo 可以看到它。

关于linux - 如何使我的环境变量可用于 sudo 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38995265/

相关文章:

linux - 在管道 awk 语句之间传递变量

bash - 将输出写入日志文件和控制台

php - 允许 PHP 用户写入另一个用户的主文件夹

linux - 我如何在 Linux 中使用 python 3 tkinter?

python - Linux 上的 python httplib2 问题

java - Tesseract 错误。非法的最小或最大规范

linux - 为什么 "grep -w"匹配以 "."或 "$"结尾的字符串?

php - 继续在远程服务器上使用ssh2_exec显示bash长时间运行的结果

shell - wget 的 stderr 在写入屏幕时与写入文件时看起来如此不同

linux - ubuntu 中的 makefile 在意外标记 `( 附近给出 bash 语法错误