shell脚本的坑坑洼洼

shell脚本的坑坑洼洼

1、在shell中调用read
#!/usr/bash

read -t 30 -p “提示信息” 变量名;
# if 语句用法
if [ $变量名 ]; then
	变量值存在执行的语句
else
	变量值不存在执行的语句
fi

# 判断为空
if [ ! -n "$name" ]; then
	name="opm"
else
	name=$name
fi

2、在shell中调用scp / ssh
#!/usr/bash
scp $path "${user}@${ip}":~/tar_install.tar.gz
# " "中的内容表示在ssh中执行的shell命令
ssh $user@$ip "cd ~ && tar -zxvf tar_install.tar.gz && cd ~/tar_install && sh ./project_deployment.sh"
3、shell文件后的传参数
#!/bin/bash
echo "脚本名$0"
echo "第一个参数$1"
echo "第二个参数$2"
echo "第三个参数$3"
echo "第四个参数$4"
……
echo "第十个参数$10"
echo "第十个参数${10}"

# ⚠️ $0获取到的是脚本路径以及脚本名
#   取不到的参数,不显示
4、shell中调用sed(替换指定文件中的内容)
#!/usr/bash
# 不传参数
sed -i "s![被替换的字符串]![替换成的字符串]" [目标文件路径];
# 传参数[⚠️ 参数放在''中,才有意义,如外层包的是"", 同样也没有意义]
sed -i 's!server_name  117.50.90.182;!server_name  '${ip}';!g' /usr/local/nginx/conf/nginx.conf

# echo
echo '你配置的'${name}'项目地址为:http://117.50.90.182:8010'
5、shell中调用执行mysql
#!/usr/bash
# mysql 修改密码
mysql -uroot -p1232313 << EOF
  use mysql;
  update user set password_expired='N' where user='root';
  update mysql.user set authentication_string=password('密码') where user='root';
  flush privileges;
EOF
# mysql 添加用户
mysql -uroot -pXEQy5KBSkMSHemt << EOF
  grant all privileges on *.* to 'root'@'%' identified by 'root';
  create database oms_2_data charset=utf8;
  create user 'oms'@'%' identified by 'vskyslv2qq.';
  grant all privileges on oms_2_data.* to 'oms'@'%' identified by 'vskyslv2qq.' with grant option;
  flush privileges;
EOF

# mysql 插入数据
mysql -u[user] -p[password] 数据库名 -e "INSERT INTO 表名 VALUES ('1', '管理员', 100), ('11', '运营管理员', 51), ('12', '运营专员', 41), ('21', '测试管理员', 71), ('22', '测试专员', 45), ('31', '策划管理员', 81), ('32', '策划专员', 47), ('41', '程序管理员', 91), ('42', '程序专员', 49), ('51', '美术管理员', 61), ('52', '美术专员', 43), ('88', '版主', 31), ('99', '仅投票', 21), ('100', '其它', 31), ('101', '超级管理员', 103)";

6、shell中执行向文件追加写入内容
#!/usr/bash
# >> 表示在后面写入
echo 'PATH=$PATH:/usr/local/rabbitmq_server-3.7.8/sbin' >> /etc/profile;
# > 表示在覆盖文件写入
7、shell中source__python的虚拟环境
#!/usr/bash
source /data/project/oms/venv/bin/activate && python /data/project/oms/create_super_adminuser.py;
8、ssh免密登陆目标服务器
cat ~/.ssh/id_rsa.pub | ssh [目标机器登陆用户]@[目标机器ip] "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"
发布了26 篇原创文章 · 获赞 2 · 访问量 1417

猜你喜欢

转载自blog.csdn.net/weixin_43633797/article/details/102591777