好的,如果主题不清楚我将解释我的疑问。我有一个shell脚本保存在我的本地用户名为( executeAdM.sh ),当我执行此脚本时,我连接到< strong> SUDO用户通过从指令文件中获取命令。但是当我执行此脚本时,我也将参数传递给此脚本,该脚本实际上是一些目录路径 SUDO用户。请参阅下面的脚本 - :
本地脚本(executeADM.sh) - :
#!/bin/bash
echo password | sudo -S -l
sudo /usr/bin/su - user <<\EOF
#ls -lrt
pwd
for entry in $(ls -r)
do
if [ "$entry" = "testingADM.sh" ];then
./$entry $1
fi
done
EOF
执行以上 - :
./executeADM.sh somePath
当上面的脚本执行时,它成功连接到另一个用户,并在 SUDO用户执行for循环,搜索另一个名为 testingADM.sh 的SCRIPT。一旦找到脚本我用本地用户传递的参数执行该脚本, testingADM.sh 应该为我设置的路径不起作用它不是读取从本地用户传递的参数。任何人都可以帮助我在这里,我没有得到如何解决这个问题。请问我是否有什么不清楚基本上我想将参数从 LOCAL shell脚本传递给 SUDO USER shell脚本 - :
SUDO用户脚本( testingADM.sh ) - :
#!/bin/bash
path=$1
cd $path
pwd
如果我在SUDO保留的脚本中的硬编码路径变量值一切正常。但我不希望这样。:
#!/bin/bash
path=somepath
cd $path
pwd