【原创】Linux基础之Shell脚本常用命令
#!/bin/sh
1 取脚本参数
$# 参数个数
$0 当前脚本名
$1 第1个参数
$n 第n个参数
$* 所有参数
$@ 所有参数
$? 上个命令的状态
$$ 当前pid
取当前目录
$(cd `dirname $0`; pwd)
2 日期
$ date
Wed Mar 27 17:27:18 CST 2019
$ date +"%Y-%m-%d %H:%M:%S"
2019-03-27 17:28:27
$ date +"%Y-%m-%d %H:%M:%S" --date="-1 day"
2019-03-26 17:29:10
$ date +%s
1553678982$ date -d "-1day2019-05-20" +%Y%m%d
20190519$ date -d"$(date -d"1 month" +"%Y%m01") -1 day" +"%Y%m%d"
20190531$ date +"%Y%m$(cal|sed 'N;${s/.* //;P;d};D')"
20190531
3 字符串替换
将变量var中的a全部替换成b
${var//a/b}
echo "$var"|awk 'gsub("a","b") {print $0}'
echo "$"|sed 's/a/b/'
4 字符串截取子串
var=hello
echo ${#var}
echo $var|awk '{print substr($0, 2, 3)}'
echo ${var:2}
echo ${var:2:3}echo ${var#he}
echo ${var%lo}echo ${var1:`echo $((${#var2}+1))`}
5 字符串split
数组(item本身不能包含空格)
str=${str//,/ }
for item in $str
do
echo $item
done
cut(cut: the delimiter must be a single character 分隔符只能为1个字符)
i=1
while((1==1))
do
item=`echo $str|cut -d "," -f$i`
if [ "$item" != "" ]
then
((i++))
echo $item
else
break
fi
done
awk -F(索引位置只能硬编码)
$ echo $str|awk -F ',' '{print $1}
awk split
$ echo $str|awk '{split($0,arr,","); for (i in arr) {print arr[i]}}'
6 循环
字符串循环(空格分割)
var='1 2 3'
for var in $vars
do
echo $var
done
整数循环(从1到100)
for i in {1..100}
do
echo $i
done
自增id
i=0
for var in $vars
do
echo "$i $var"
((i=i+1))
done
while
#while true
while [ 1 -eq 1 ]
do
..
break/continue
..
done
7 字符串是否为空判断(相等、不等)
if [ -z "$var" ]
then
echo "var is empty"
fiif [ -n "$var" ]
then
echo "var is not empty"
fiif [[ "$var" = "" ]]
then
echo "empty"
fiif [[ "$var" != "" ]]
then
echo "not empty"
fi
8 字符串包含判断
if [[ "$all" == *"$sub"* ]]; then
or
if [[ "$all" =~ "$sub" ]] ;then
9 整数比较判断
if [ $a -eq 0 ]
then
echo "a = 0"
fiif [ $a -ne 0 ]
then
echo "a != 0"
fiif [ $a -gt 0 ]
then
echo "a > 0"
fiif [ $a -lt 0 ]
then
echo "a < 0"
fi
10 整数计算
echo $((2+1))
11 注释
单行注释
# comment
多行注释
<<'COMMENT'
comment1
comment2
...
COMMENT
12 文件和文件夹判断
if [ -d "/path/to/dir" ]
then
echo 'directory /path/to/dir exists'
else
echo 'directory /path/to/dir does not exists'
fiif [ -f "/path/to/file" ]
then
echo 'file /path/to/file exists'
else
echo 'file /path/to/file does not exists'
fi
13 遍历文件夹
dir=/path/to/dir/
for file in $dir/*
do
echo $file
done
14 退出脚本
exit 0
exit 1
【原创】Linux基础之Shell脚本常用命令的更多相关文章
- linux 执行远程linux上的shell脚本或者命令以及scp 上传文件到ftp--免密码登陆
场景:在linux A 上执行Linux B上的shell脚本和命令 步骤1.设置ssh免登陆 1.SSH无密码登录 # 本地服务器执行(A机器):生成密钥对 ssh-keygen -t dsa -P ...
- Shell 脚本常用命令
Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook.在工作过程中整理了一下,贴在这里已备查看. 1 Shell中的特殊符号 ...
- Linux基础篇–shell脚本编程基础
本章内容概要 编程基础 脚本基本格式 变量 运算 条件测试 配置用户环境 7.1 编程基础程序:指令+数据程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心 ...
- shell脚本常用命令汇总
一.shell脚本概述和入门 (1)shell脚本是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核 (2)shell脚本的常用执行方式: 第一种:采用bash或sh+脚本的相对路径或 ...
- linux基础(4)-常用命令
常用命令ls ls #查看当前目录下的文件和目录 ls -l #显示详细信息 ls -a #显示所有文件 ls -t #按修改时间排序 ls -S #按文件大小排序 常用命令pwd pwd #显示 ...
- linux常用命令(shell脚本常用命令)(grep、cut、sort、uniq、seq、tr、basename、dirname)
本章命令: 1 2 3 4 5 6 grep cut sort uniq seq tr 1.grep 作用:过滤文本内容 选项 描述 -E :--extended--regexp 模式是扩展正则表达式 ...
- 【Linux基础学习】Ubuntu 常用命令大全
一.文件目录类 1.建立目录:mkdir 目录名 2.删除空目录:rmdir 目录名 3.无条件删除子目录: rm -rf 目录名 4.改变当前目录:cd 目录名 (进入用户home目录:cd ~:进 ...
- Shell脚本常用命令简介
格式化日期yyyy-mm-dd hh:mm:ss显示 date "+%Y-%m-%d %H:%M:%S" 将内容写入到新文件 echo "hello">a ...
- Linux基础学习笔记以及常用命令
1.windows自带命令进入mysql所在磁盘 2.进入mysql安装目录的bin文件 D:\>cd D:\Program Files (x86)\mysql-5.5.25-winx64\ ...
随机推荐
- Java入门系列 Lambda表达式
https://blog.csdn.net/bitcarmanlee/article/details/70195403
- IIS 常见异常及解决办法
Ø 简介 IIS 是我们平常接触比较多的服务端软件,用于站点发布等,本文主要记录 IIS 常见的异常及解决办法.主要包括: 1. Visual Studio 启动 Web 项目提示"无 ...
- hashMap源码解析(四)
---恢复内容开始--- 在上文中讲到了putval这个方法,这里继续: final V putVal(int hash, K key, V value, boolean onlyIfAbsent, ...
- .net 使用oracle 的存储过程有返回值也有数据集(游标)
public void GetData(string username, string userip, string userkey, string userareaid, string ypid, ...
- 15款Java程序员必备的开发工具(转)
如果你是一名Web开发人员,那么用膝盖想也知道你的职业生涯大部分将使用Java而度过.这是一款商业级的编程语言,我们没有办法不接触它 对于Java,有两种截然不同的观点: 一种认为Java是最简单功能 ...
- java 弹出选择目录框(选择文件夹),获取选择的文件夹路径
java 弹出选择目录框(选择文件夹),获取选择的文件夹路径 java 弹出选择目录框(选择文件夹),获取选择的文件夹路径:int result = 0;File file = null;String ...
- Oracle简单触发器应用
1.Oracle触发器 1.当发生特定事件的时候要执行的一个过程. 2.触发器的分类及语法及解析 1.DDL 触发器 1.[CREATE,DROP,...] 2.DML触发器 1.[INSERT,DE ...
- Java开发环境配置(3)--eclipse汉化插件安装、卸载 中遇到的问题
eclipse汉化中遇到的问题 网上汉化的帖子很多 如: Eclipse超级完美汉化教程_百度经验http://jingyan.baidu.com/article/e75057f28401a8ebc9 ...
- python 微信跳一跳辅助 复现
本来用的是苹果ios得手机,但是步骤较为复杂,没有吃透,最后妥协用了android的机器搞得. 首先找到大牛的github https://github.com/wangshub/wechat_jum ...
- 前端 - jsonp 跨域ajax
jsonp 跨域ajax原理: 浏览器同源策略限制 如何解决同源策略限制: 方式一: 利用创建script块,在其中执行src属性为 远程url 异域 用函数(返回值) 的形式返回参数 方式二: jq ...