
linux切换用户执行脚本
发布日期:2021-05-18 03:47:43
浏览次数:18
分类:精选文章
本文共 734 字,大约阅读时间需要 2 分钟。
在实际运维工作中,当以root权限执行脚本时,有时需要切换到不同用户执行对应命令或脚本。下面是切换用户的几种常用方式:
1. 使用su
命令单独执行命令
su - user -c 'command'
或无需引号: su - user command
例子: su - zzl -c 'whoami'
su - zzl whoami
2. 执行多个命令并对输出进行赋值
若需要对命令输出进行处理,可使用单引号包裹多个命令。su - user -c '<command1> command2>'
单引号可以赋值输出结果,如: su - zzl -c '<free -m user=$(whoami) echo $user>'
3. 执行脚本并切换环境
若需要切换目录或loading环境,可以指定脚本路径:su - user -s /bin/bash script.sh
例子: su - zzl -s /bin/bash /home/zzl/a.sh
4. 使用标准输入方式(无输出赋值支持)
这种方式适合简单命令,不支持对输出进行赋值。su - user <<EOF
command1
command2
EOF
实际示例: su - zzl <<EOF
whoami
free -m
EOF
值得注意的是,标准输入方式无法对命令输出进行变量赋值,若需要处理输出,可结合-c
选项。
无赋值示例:
su - zzl <<EOF
user=$(whoami)
echo $user
free -m
EOF
whoami
在这种情况下,$user
未被赋值,实际输出会显示空白。 这些方式各有特点,选择时需根据实际需求决定。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月11日 06时32分45秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C++ Primer Plus读书笔记:循环读取(错误处理)
2019-03-12
Form窗体属性
2019-03-12
vue 错误收集
2019-03-12
Java选择排序算法实现
2019-03-12
00010.02最基础客户信息管理软件(意义类的小项目,练习基础,不涉及数据库)
2019-03-12
00013.05 字符串比较
2019-03-12
Effective Java 读书笔记
2019-03-12
SpringBoot使用@Email报错误
2019-03-13
Rabbitmq的内存磁盘监控
2019-03-13
访问servlet时弹出文件下载框解决方法
2019-03-13
IDEA-@Slf4j和log标签&@Data(Lombok)无效
2019-03-13
Thymeleaf 生成下标,索引,使用Stat变量
2019-03-13
ValueError: Unexpected end of file.
2019-03-13
六、登录(二)
2019-03-13
初始微服务---Springcloud发展【第一期】
2019-03-13
RAFT 拜占庭将军 共识算法
2019-03-13
UE4 错误列表 error码(只记录我遇到的情况,持续添加,未完成)
2019-03-13