gpt4 book ai didi

linux - 从 root (unix) 运行脚本时变量不存储值

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:39 25 4
gpt4 key购买 nike

通过 root 运行此脚本时,输出变量不存储“pbrun tsm_support.ksh -c $i”命令的值。

 #!/bin/bash
set -x

for i in `cat /home/unixlist.txt`

do
output=$(pbrun tsm_support.ksh -c $i)
echo $output >> /home/file.txt
if echo "$output" | grep -i "OPTION01" ;
then
echo successfull-- $i===$output

当我从本地用户 id 运行这个脚本时,它运行完美文件并打印输出,

Error-- DBSSS0006=== Starting checkfix script.....DBSSS0006:B:SunOS:1:1:2:0:Z
Error-- DBSSS0005=== Starting checkfix script.....DBSSS0005:B:SunOS:1:1:2:0:Z

但是当我从 root 运行这个脚本时,它没有获取输出变量的值。它不采用 $output 的值。

  Error-- DBSSS0006===
Error-- DBSSS0005===

我没有 root 权限,我可以编辑 crontab 文件并将我的条目放在那里。

最佳答案

问题在于 crontab 中设置的环境变量与命令行中设置的环境变量。它们不一样。

要查看您必须更改的内容:把这个放在你的 crontab 中:

* * * * * set > /tmp/crontab.txt

保存它,等待 2 -3 分钟让它运行,然后删除 crontab 更改。

下一步:

set > /tmp/myenv.txt
diff /tmp/myenv.txt /tmp/crontab.txt

将向您展示差异。对您的 crontab 脚本进行一些更改,以便它(可能)具有您需要的 PATH 变量和 LD_LIBRARY_PATH 变量更改。您不必更改每个环境变量。

关于linux - 从 root (unix) 运行脚本时变量不存储值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16531443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com