shell脚本基础学习

前言
从shell包含的内容来看,有父子shell,有局部变量有全局变量,有逻辑判断,甚至涉及到可以写函数,取函数的返回值问题等等。
这篇主要是记录下Shell不断试一些命令的过程,记录一下shell的一些常见符号的区别,
不知道shell从哪里学起可以预先设想一个功能,通过一步步实现整个过程中熟悉shell命令

  • 单引号变量不识别特殊语法
  • 双引号变量能识别特殊语法
[root@wq1 ~]# name=specialwu
[root@wq1 ~]# echo $name
specialwu
[root@wq1 ~]# name1='$name'
[root@wq1 ~]# echo $name1
$name
[root@wq1 ~]# name2="$name"
[root@wq1 ~]# echo $name2
specialwu
[root@wq1 ~]#
  • 反引号和$()
[root@wq1 ~]# name=`pwd`
[root@wq1 ~]# echo $name
/root
[root@wq1 ~]# name=$(pwd)
[root@wq1 ~]# echo $name
/root
[root@wq1 ~]# 
  • $? $0 …
[root@wq1 ~]# echo $0
-bash
[root@wq1 ~]# echo $?
0
[root@wq1 ~]#
  • 变量名区分大小写
  • 赋值或写其他条件注意格式的要求

从整体上看一个shell脚本

#!/bin/bash
workhome=$(cd `dirname $0`/..;pwd)
while [ 0 -eq 0 ]
do
cd $workhome
if [ $? -ne 0 ]; then
echo "切换到 ${workhome} 失败"
exit 1
fi

echo "当前时间开始 `date +"%Y-%m-%d %H:%M:%S"`"
cd ${workhome}
sh main.sh >main.log
echo "sh main.sh开始执行"

echo "连mysql"

mysqlsql()
{

mysqlnum=`mysql -uroot -ppassword. -e "${sqlstr}"`
echo "$mysqlnum"

}
sqlstr="select version();"
get_version=`mysqlsql`
echo "${get_version}"

echo "连hive"
mydb="specialwu"
hivesqlstr="select max(name) from ${mydb}.test;"

#自定义一个函数 函数值返回有echo return 和全局变量
hivesql()
{

test_name=`beeline -u jdbc:hive2://wq1:10000 -n root -hivevar mydb=${mydb} -e --silent=true --showHeader=false "hivesqlstr"`

echo "$test_name"
}

get_name=`hivesql`
name=`echo ${test_name}|tr -d "-"|tr -d "+"`
echo "${name}"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值