文章目录
- 一、linux动态执行指定脚本
 - 二、需求思路分析
 - ①我要做什么?
 - ②先手动执行一遍流程
 - ③ 把执行命令记录下来
 
- 三、动态执行脚本
 - ①手动制作脚本
 - ②脚本升级
 - ③ 脚本截图
 
一、linux动态执行指定脚本
- 脚本目录 /app/CodeQualityScan/gblfy_cx/
 - 脚本名 sonar-scanner.sh
 - 用户gblfy_cx
 
二、需求思路分析
①我要做什么?
用户gblfy_cx进入/app/CodeQualityScan/gblfy_cx/脚本目录执行sonar-scanner.sh
②先手动执行一遍流程
| 执行步骤 | 说明 | 
|---|---|
| ① | 先用root用户登录 | 
| ② | 切换用户到gblfy_cx | 
| ③ | 到指定目录 | 
| ④ | 执行指定脚本 | 
| ⑤ | 查看日志 | 
③ 把执行命令记录下来
把手动执行的每一条命令,都记录下来,剩下的就是怎样写一个脚本,让脚本依次执行我们的命令即可
| 步骤 | 需求 | 执行命令 | 
|---|---|---|
| ① | 切换用户到gblfy_cx | su - gblfy_cx | 
| ② | 到指定目录 | cd /app/CodeQualityScan/gblfy_cx/ | 
| ③ | 执行指定脚本 | ./sonar-scanner.sh | 
三、动态执行脚本
①手动制作脚本
| 执行步骤 | 说明 | 执行命令 | 
|---|---|---|
| ① | 新建一个脚本DynamicStartSonarShell.sh | vim DynamicStartSonarShell.sh | 
| ② | 给此文件赋予可执行权限gblfy_cx | chmod u+x DynamicStartSonarShell.sh | 
| ③ | 执行指定脚本 | ./DynamicStartSonarShell.sh | 
脚本内容:
#!/bin/bash
#su - $1 -s /bin/bash /app/CodeQualityScan/gblfy_cx/sonar-scanner.sh
su -gblfy_cx <<EOF
cd  /bin/bash /app/CodeQualityScan/gblfy_cx/;
./sonar-scanner.sh
exit;
EOF
 
②脚本升级
#格式:sh 脚本名 用户用 目录
sh DynamicStartSonarShell.sh gblfy_cx  /bin/bash /app/CodeQualityScan/gblfy_cx/
注:只有root才可以,root切换到任何一个用户不需要输入密码,但,其他用户切换root用户或者其他用户都需要密码
 
脚本内容:
#!/bin/bash
#su - $1 -s /bin/bash /app/CodeQualityScan/gblfy_cx/sonar-scanner.sh
su - $1 <<EOF
cd $2;
./sonar-scanner.sh
exit;
EOF
 
③ 脚本截图
