作为shell脚本的一部分,sudo su不起作用。还有其他选择吗?

时间:2018-09-11 09:07:23

标签: linux shell amazon-s3 amazon-emr

以下3行是我的Shell脚本的一部分,但它正在执行第一行并正确复制文件。 按顺序执行此rpm文件,我需要提示root用户。因此,我写了第二步。但是它没有执行,因此我无法安装rpm文件。

aws s3 cp s3://mybucket/oracle-instantclient12.2-basiclite.rpm / home / user1 / 苏多苏 yum -y install /home/user1/oracle-instantclient12.2-basiclite.rpm

因此,对此(sudo su)的任何替代解决方案,或告诉我如何提示root用户以安装提到的rpm文件。

谢谢

3 个答案:

答案 0 :(得分:0)

您可以尝试使用sudo -s

sudo yum -y install /home/user1/oracle-instantclient12.2-basiclite-12.2.0.1.0-1.x86_64.rpm

第一个选项将您切换为root用户,而第二个选项则允许您以root用户身份运行命令。

答案 1 :(得分:0)

aws s3 cp s3://mybucket/oracle-instantclient12.2-basiclite.rpm / home / user1 / && sudo -i yum -y install /home/user1/oracle-instantclient12.2-basiclite.rpm

答案 2 :(得分:0)

您必须在两个命令之间添加&&(请参阅此answer)并使用sudo yum安装:

aws s3 cp s3://mybucket/oracle-instantclient12.2-basiclite.rpm /home/user1/ && sudo yum -y install /home/user1/oracle-instantclient12.2-basiclite.rpm

sudo rpm -i /home/user1/oracle-instantclient12.2-basiclite.rpm也应该起作用。

没有其他方法可以从一个命令行运行两个命令...

您确定命令行的后半部分甚至可以在远程主机上运行吗?因为我希望它以send-command为前缀(以防从本地shell运行而不是在远程主机上运行)。也没有指出您试图针对哪个Linux发行版运行命令;添加相关的RPM存储库,然后从那里安装,可能是最可靠的方法。

相关问题