shell脚本,我从root用户切换到普通用户之后,新定义了一个变量,但打印变量的值是空的,怎么回事?
发布网友
发布时间:2022-04-23 14:31
我来回答
共2个回答
热心网友
时间:2023-10-18 14:39
在$前面加上转义, echo ${Result1} 替换成 echo \${Result1}
这个问题跟root用户切换到普通用户什么的没关系,而是因为你在用here-document的时候,并没有用双引号或单引号将!引用起来,或用转义符\将here-document中的元字符$转义,这时候here-document中的文本将被扩展,即参数替换被启用。
你运行一下这段脚本,看看Result1值的变化,就会明白了
#!/bin/bash
Result1="001"
echo "Parameter substitution is enabled"
bash<<EOF
if [ "1" = "1" ];
then
Result1="111";
echo ${Result1};
echo "wr";
fi
EOF
echo "Parameter substitution is disabled"
bash<<EOF
if [ "1" = "1" ];
then
Result1="111";
echo \${Result1};
echo "wr";
fi
EOF
bash<<'EOF'
if [ "1" = "1" ];
then
Result1="111";
echo ${Result1};
echo "wr";
fi
EOF
热心网友
时间:2023-10-18 14:39
su - comuser<<!
这句话不明白,注释之后,普通用户可以打印两行的:
111
wr
用root身份来运行的确结果不一样,可能的原因是在‘!’符号和下一行之间缺了什么而导致result这个变量没有被赋值。具体缺什么我就不清楚了。
shell脚本,我从root用户切换到普通用户之后,新定义了一个变量,但打印变...
这个问题跟root用户切换到普通用户什么的没关系,而是因为你在用here-document的时候,并没有用双引号或单引号将!引用起来,或用转义符\将here-document中的元字符$转义,这时候here-document中的文本将被扩展,即参数替换被启用。你运行一下这段脚本,看看Result1值的变化,就会明白了 !/bin/bashResult...
linux中怎么从root用户切换到普通用户
如果当前是root用户,那么切换成普通用户test用以下命令:su - test root@ubuntu:~# su - test [sudo] password for test:test@ubuntu:~如果要切换回root用户,那么用以下命令:su或su -用户名root可以省略不写。切换回root用户时要输入root密码。一般直接输入exit命令来切换回root用户,这样就不用输...
linux以root用户身份进入centos后如何切换到普通用户?
只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令...
linux切换用户加载环境变量
在linux下新建普通用户test,配置环境变量,source后生效; 使用root登陆,su test切换用户后,环境变量加载错误,需要重新source; 原因: su test只是切换了用户,没有切换shell; 使用 su - test;详解: 大部分Linux发行版的默认账户是普通...
shell中调用expect 我编写了一个普通用户切换到root的脚本。
在bash 中直接执行expect 应该使用 -c 选项,而不是使用重定向。expect -c 'spawn su - expect ":" { send "passwdXXXX\n"} interact '你这种想法也算不上托裤子放屁,既然expect 提供了 -c 选项,就说名直接在bash 中调用expect 的大有人在。
su命令如何切换用户并保留环境变量?
例如,如果你想在切换用户后立即执行特定命令,可以使用"-c"或"--command"选项。"su -l"或"--login"则在切换用户时,会自动更改工作目录和其他相关环境变量,如HOME、SHELL等。如果想保留当前环境变量,可以使用"-p"或"--preserve-environment"。还有"-s"或"--shell",用于指定新的shell,以及"-...
SHELL脚本切换用户需输入密码
详细你百度查一下 !/usr/bin/expect su - mao #你要执行的命令 expect "Password:" #执行后终端回显的交互信息 send "admin_123\r" #当终端出现上面的交互详细后,模拟键盘输入的内容 此例,执行su - mao 切换mao用户,终端提示输入密码后,模拟键盘输入mao用户的密码 ...
在Linux下能不能以shell脚本的形式由普通用户切换到root
在ubuntu下;由普通用户切换到root $su 由root切换到普通 #exit
Python Linux环境下,需要登录到另一个用户,执行一些文件操作,如何做...
在执行脚本的时候加sudo,比如你的脚本叫test.py,用sudo python test.py执行,就可以了,亲测可用
linux 切换用户的时候显示的是bash,root 下面的skel是空的 ,
1 - 用户使用哪种shell是可以更改的。使用usermod更改,或者手动改/etc/passwd,不建议改root的默认shell,2 - 用户模板文件/etc/skel,创建普通用户的时候,从/etc/skel/目录复制内容到用户的home目录,来设定用户默认的用户环境。这个目录的文件都是隐藏文件,你可以使用-a参数看到文件。例如 ls -a ...