Zeros Tech Zeros Tech
首页
架构
大数据
数据库
  • 面试

    • Java面试
    • 大数据面试
    • 架构面试
语言
运维
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

迹_Jason

全栈工程师
首页
架构
大数据
数据库
  • 面试

    • Java面试
    • 大数据面试
    • 架构面试
语言
运维
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • java

    • 设计模式

    • 多线程
    • 设计模式
    • 性能测试
    • CompletableFuture
    • ConcurrentHashMap原理
    • HashMap
    • Java 应用 TIPS
    • Java 专业方法集
    • java_io
    • Java11新特性
    • JAVA并发编程CAS和AQS
    • java汇总
    • Java基础
    • synchronized
    • ThreadLocal
    • Mapstruct
    • LockSupport
    • ReentrantLock
    • CAS
  • javaScript

  • python

  • scala

  • node

  • lua

  • rust

  • shell

  • Gradle

  • 语言
  • shell
迹_Jason
2021-07-18

Shell

# 文件格式

以.sh结尾

#!/bin/bash
1

# 语法

# 变量

username="${1}"
username=${1}

1
2
3

# 获取上一个执行结果

使用反引号`` (数字键 1 左边的键,tab 键上面,英文方式输入)

# 即将命令 echo "hello world"的输出赋给变量a
a=`echo "hello world"`
# 可以使用 $(()) 也是一样的
a=$(echo "hello world")
1
2
3
4

不过某些 unix 系统不支持$()这种写法。但是``在任何 unix 或 linux 系统下都可以使用。

# 获取执行成功与否

$?
1

$? 上一条语句的执行结果,成功返回 0,若为 1-255,则失败

# 退出 shell

exit
1

# 字符串通配符

*"吃啥"*
1

# 运算符

与或运算:&&,||, !

# 命令内部执行命令

比如:hbase shell 内部执行命令,应该怎办呢

printf "%b" "create_namespace ceshi" | hbase shell
1

# if 语句

if [ $? == 0 ]
then
echo '===generate keytab successed==='
else
echo '===generate keytab failure==='
exit
fi

if [ $a == $b ]
then
   echo "a is equal to b"
elif [ $a -gt $b ]
then
   echo "a is greater than b"
elif [ $a -lt $b ]
then
   echo "a is less than b"
else
   echo "None of the condition met"
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

不能进行语句嵌套,且[ ... ]注意空格,推荐使用[[ ... ]]

# 列表

hosts_name=(
dev-dmp1.fengdai.org
dev-dmp2.fengdai.org
dev-dmp3.fengdai.org
dev-dmp4.fengdai.org
dev-dmp5.fengdai.org
dev-dmp6.fengdai.org
dev-dmp7.fengdai.org
dev-dmp8.fengdai.org
dev-dmp9.fengdai.org
dev-dmp10.fengdai.org
dev-dmp11.fengdai.org
)
1
2
3
4
5
6
7
8
9
10
11
12
13

# shell 命令返回结果赋值变量

a = `命令内容`
1

# 语法糖

# 创建用户

$(ssh root@dev-dmp1.fengdai.org 'useradd' ${username})
1

# 服务器间发送文件

scp ${fileName}  root@dev-dmp1.fengdai.org:/home/
1

# 查看指定端口服务

netstat -tupln | grep 2181
1

# 将 java 语句执行结果赋值给变量

参考:IFS

IFS=' ' read -r -a mvnEnv <<< `mvn -q -Dexec.executable='echo' -Dexec.args='${project.groupId} ${project.artifactId} ${maven.deploy.skip}' --non-recursive exec:exec`

1
2
编辑 (opens new window)
上次更新: 2021/07/21, 18:22:30
最近更新
01
权限
12-17
02
SpringGateway
12-17
03
Spock
12-17
更多文章>
Theme by Vdoing | Copyright © 2021-2021 迹_Jason | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×