gpt4 book ai didi

linux - shell脚本中sudo over ssh中的多个命令

转载 作者:太空宇宙 更新时间:2023-11-04 09:37:04 24 4
gpt4 key购买 nike

我的脚本如下。

#!/bin/bash

version = 1.1

echo "Enter username"

read UserName

ssh -t $UserName@server bash -c " '

./runSomeScript

echo "Entering Sudo"

sudo -s -u user1 -c "cd random; ./randomscrip xx-$version-yy"

'"

但这行不通。

基本上我想对一个帐户执行 ssh。然后运行SomeScript然后以 user1 身份执行 sudo,然后仅以 sudo 用户身份运行命令 cd random 和 ./randomscrip(以 xx-Version-yy 作为参数)。但是 sudo 中的命令不起作用。

最佳答案

你的引用有点粗心。您在第一级和第三级引用中使用了双引号,而 shell 无法区分彼此。改为做这样的事情:

sudoScript="cd random; ./randomscrip xx-${version}-yy"
sshScript='
./runSomeScript
echo "Entering Sudo"
sudo -s -u user1 bash -c '"'${sudoScript}'"'
'
ssh -t ${UserName}@server "${sshScript}"

但请注意,如果您嵌入任何单引号,它仍然会出错,除非您添加一层 shell-quoting。

最后,在分配给 version 时删除 = 周围的空格。

关于linux - shell脚本中sudo over ssh中的多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25502634/

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