问题:

为何第二个whoami打印的还是root?

root@localhost /]# 
[root@localhost /]# 
[root@localhost /]# more test.sh 
#!/bin/bash
echo "current user is $(whoami)"
su - oracle <<!
echo "current user is $(whoami)"
whoami

[root@localhost /]# /test.sh 
current user is root
current user is root
oracle
[root@localhost /]#
 
答:
最主要是当前shell去解释了 $() 的问题
1: 当 su -c '' 这样执行是没有这个问题的。 使用的是 单引号, 如果双引号还是一样的。
2: 当使用heredoc 执行时, 如果不转义$,就会先执行这里的 whoami 所以是 root,  如果转义,就不一样的。

[root@cAdmin tmp]# more re  
#!/bin/bash
echo "A current user is $(whoami)" 
su - uchip -c 'echo "B current user is $(whoami) $EUID $UID";whoami'

echo "--------------------"
su uchip  <<EOF
echo "C current user is \$(whoami) \$EUID \$UID"
echo "--------------------"
whoami
echo \$USER $USER "===="
EOF

[root@cAdmin tmp]# bash re
A current user is root
B current user is uchip 500 500
uchip
--------------------
C current user is uchip 500 500
--------------------
uchip
uchip root ====

 

切换用户后whoami打印用户的问题的更多相关文章

  1. [加入用户]解决useradd 用户后没有加入用户Home文件夹的情况,Linux改变文件或文件夹的訪问权限命令,linux改动用户password,usermod的ysuum安装包。飞

    usermod的yum安装包: shadow-utils 将nobody用户加入到nogroup 组: usermod -g nogroup nobody cat /etc/passwd|grep n ...

  2. 解决苹果电脑(mac)管理员账户变成了普通用户后不能解锁用户与群组的问题

    亲们,我先说说前因,然后再说一下解决方法. 前因 今天不知怎么就想把苹果电脑原来的名字给改一下,于是就做了下面的操作(你们不要这样做) 1.系统偏好设置→用户与组群→当前管理员用户→(右键)高级选项 ...

  3. 用户登录拦截器查询到登录用户后如何将用户信息传递到后面的Controller

    taotao创建订单代码中之前忘了加入用户信息,那么加上呢? 分析:用户创建订单的时候,我们会强制要求用户先登录,也就是说,创建订单的Controller执行时,一定是用户已经登录了的,而用户只要登录 ...

  4. [添加用户]解决useradd 用户后没有添加用户Home目录的情况,Linux改变文件或目录的访问权限命令,linux修改用户密码

    将nobody用户添加到nogroup 组:usermod -g nogroup nobody cat /etc/passwd|grep nobodynobody:x:65534:65534:nobo ...

  5. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-新增锁定用户与解除锁定用户的功能

    锁定用户功能在现实应用场景中得到了大量的应用,当我们需要限制某用户的登录,又不能删除这个用户时就可以使用锁定功能,如:未授权的用户尝试错误密码错误过多可以尝试的用户进行锁定,又如ATM机上取钱时密码错 ...

  6. 切换用户后,/etc/profile的配置不起效

    遇到的问题 在配置linux的时候,发现一个问题:su root切换到root用户后,/etc/profile 中配置的PATH不起效果. 问题分析和疑问 是不是~/.profile,~/.bashr ...

  7. 创建新用户后无法切换 su: failed to execute /bin/bash: Permission denied

    创建新用户后无法切换 su: failed to execute /bin/bash: Permission denied   当使用 su username 从root切换用户时显示 su: fai ...

  8. 简单的股票信息查询系统 1 程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环) 2 允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来 3 允许按股票价格、涨跌幅、换手率这几列来筛选信息, 比如输入“价格>50”则把价格大于50的股票都打印,输入“市盈率<50“,则把市盈率小于50的股票都打印,不用判断等于。

    '''需求:1 程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环)2 允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来3 允许按股票价格 ...

  9. Unbutu14.04 切换ROOT用户后无法启用音频

    系统环境: Ubuntu14.04 x64 问题描述: 今天安装了Ubuntu14.04的64位系统,启用root用户登录后,观看视频时出现没有声音的现象. 问题原因: Ubuntu安装后默认root ...

随机推荐

  1. 【Dotnet9-01】从0开始搭建开源项目-lqclass.com

    行文目录 一. 前言 1.1 我的现有网站 1.2 想法:新开发一个网站 1.3 目前开发计划 二. 行动了 2.1 Github创建项目 2.2 使用 WTM 搭建后台框架 2.3 项目演示 2.4 ...

  2. 区块链产业发展热潮来袭,Panda Global 认为体验、安全是关键词

    作为一项近些年才发展起来的新型技术,区块链自诞生之日起就备受关注,凭着去中心化.不可篡改.信息透明等多种关键特点,已成为变革传统产业的一项有力创新手段.当区块链热潮再度袭来之时,知名数字货币交易所Pa ...

  3. MBR分区表为什么最大只能识别2TB硬盘容量

    1. 前言 最近公司的服务器硬盘坏了,需要换一个新的硬盘,容量是2TB,用的fdisk进行分区,期间搜索分区工具,看到了关于MBR(Master Boot Record)与GPT(GUID parti ...

  4. VMware & centos 7 配置克隆虚拟机

    VMware & centos 7 配置克隆虚拟机 之前一直使用的是centos6,买了新电脑试了一下centos7,安装过程果然采坑不少,下面是我成功安装的过程 克隆虚拟机 安装虚拟机,安装 ...

  5. 系统类 字符串String类

    java编程语言中的字符串. 在java中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象. String 对象是 System.Char 对象的有序集合,用 ...

  6. react第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能)

    第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能) #课程目标 理解因为react的单向数据流 理解表单组件会因为react数据流变的不好维护 理解受控组件与非受控组件的实质区别 理解 ...

  7. [日常摸鱼]bzoj2875[NOI2012]随机数生成器-矩阵快速幂

    好裸的矩阵快速幂-然而我一开始居然构造不出矩阵- 平常两个的情况都是拿相邻两项放在矩阵里拿去递推的-然后我就一直构造不出来-其实把矩阵下面弄成1就好了啊orz #include<cstdio&g ...

  8. UWP 适配不同设备 屏幕

    1.DeviceFamily-Type文件夹 将Index.xaml拷贝到DeviceFamily-Desktop 和DeviceFamily-Mobile,删除这2个目录下的Index.xmal.c ...

  9. 分析《令人心动的offer2》网友们都在吐槽什么?

    综艺,是我们劳累了一天的放松方式,也是我们饭后的谈资.看着自己喜欢的综艺,时光足够美.而<令人心动的offer >,就是一个不错的综艺选择.有人说它让自己更自卑了,而我觉得挺有意思. &l ...

  10. Python 带你高效创作短视频,视频创作秀到飞起!!!

    近两年,抖音.快手将短视频推到风口浪尖上,要生产出高质量的视频,离不开视频剪辑这一环节:在全民剪片浪潮中,大众使用最多的剪辑软件如:Pr.FCPX.剪印.Vue 等. 视频剪辑过程中,Python 一 ...