shell入门(一)
echo -n 不换行输出
echo -e 处理特殊字符
read -p “please input a number” x 提示输入一个数,并赋值给x
case 用法
case $x in1) echo 'You select 1';;2) echo 'You select 2';;*) echo 'You do not select a number between 1 to 4';;
esac
判断
if [ ans−ge3−aans -le 9 ]
使用函数
#!/bin/sh
RED_COLOR='\E[1;31m'
GREEN_COLOR='\E[1;32m'
YELLOW_COLOR='\E[1;33m'
BLUE_COLOR='\E[1;34m'
RES='\E[0m'
function usage(){echo "USAGE: $0 {1|2|3|4}"exit 1
}
function menu(){cat <<END1.apple2.pear3.banana
END
}
function chose(){read -p "pls input your choice:" fruitcase "$fruit" in1)echo -e "${RED_COLOR}apple${RES}";;2)echo -e "${GREEN_COLOR}pear${RES}" ;;3)echo -e "${YELLOW_COLOR}banana${RES}" ;;*)usageesac
}
function main(){menuchose
}
main统计传入的参数个数 脚本名字
$# $0连接两个字符串
v1="hello"
v2="world"
v3=$v1$v2计算两个数的和
A=1
B=2
let v3=$A+$B
echo $v3
echo $(($A+$B)) # 方法 2
echo $[$A+$B] # 方法 3
expr $A + $B # 方法 4
echo $A+$B | bc # 方法 5
awk 'BEGIN{print '"$A"'+'"$B"'}' # 方法 6如何获取某一行(取第五行)
方法一:head -5 test.txt|tail -1
方法二:cat test.txt|sed -n '7p' //-n是指只显示生效的那行后台运行
nohup command 永久执行,和用户端没有关系,断开ssh连接也不会影响到其执行,该命令执行之后会产生子文件,该子文件位于当前目录,相当于日志文件
command & 后台执行,当用户推出(挂起)的时候,命令行也会跟着退出
比较巧妙的命令是
nohup command & 使命令永久在后台执行怎么注释语句注释一行#注释多行<<COMMENT我要注释的内容COMMENT'和"以及`(反引号)区别
' 把括起来的部分当做字符串
" 如果字符串里有变量,那么会使用变量的值来代替该变量
` 把括起来的部分当做命令执行调用另一个脚本
exec ./a.sh //执行之后,该进程剩下的部分不会再执行,而是转至执行a.sh脚本
source ./a.sh //执行完该脚本之后,继续回来继续执行剩下的脚本
fork ./a.sh //直接运行脚本,会以当期那shell为父进程,产生新的进程使用echo命令获取字符串变量的一部分
echo ${variable:x:y} //取字符串variable中的x到y的位置的字符根据某个字符提取部分数据
variable="User:123:321:/home/dir/aa"
echo ${variable#*:*:} 或者 echo ${variable##*:}
运行结果
321:/home/dir/aa
如果只需要显示User
echo ${variable%:*:*:*} 或者 echo ${variable%%:*}xargs的使用 执行下列命令会分行显示 -n1表示每次传一个参数过去,我刚开始的时候用,把参数隔开了,然后就没有分行显示
echo '1 , 2 3 4'|xargs -n1 修改bash的标准分割符为:
IFS=":"获取变量的长度
${#variable}打印变量的最后5个字符
echo ${variable: -5} //注意-5前有个空格
${variable:-10} //如果variable未赋值,则输出5,如有赋值,只输出原值转换为大写
tr '[:lower:]' '[:upper:]'删除字符串中的所有空格
echo $string|tr -d " "写出输出数字 0 到 100 中 3 的倍数(0 3 6 9 …)的命令 ?
for i in {0..100..3}; do echo $i; done[ $a == $b ] 和 [ $a -eq $b ] 有什么区别
[ $a == $b ] - 用于字符串比较
[ $a -eq $b ] - 用于数字比较如何检查字符串是否以字母 "abc" 开头 ?
[[ $string == abc* ]]如何列出以 ab 或 xy 开头的用户名 ?
egrep "^ab|^xy" /etc/passwd|cut -d: -f1$* 和 $@ 有什么区别*
$* - 以一个字符串形式输出所有传递到脚本的参数
$@ - 以 $IFS 为分隔符列出所有传递到脚本中的参数
转载于:https://www.cnblogs.com/biaopei/p/7730585.html
shell入门(一)相关推荐
- shell入门学习笔记-12-命令详解: echo与printf
系列目录与参考文献传送门: shell入门学习笔记-序章 命令详解 admindeMacBook-Pro:myshell admin$ type cd cd is a shell builtin ad ...
- shell入门学习笔记-15-命令详解: 三剑客之一awk-分支语句、数组
系列目录与参考文献传送门: shell入门学习笔记-序章 awk分支控制 if admindeMacBook-Pro:~ admin$ seq 5 |awk '{if($0%2) print $0}' ...
- linux常见命令以及shell入门编程(笔记总结记录)
linux常见命令以及shell入门编程(笔记总结记录) 文章目录 linux常见命令以及shell入门编程(笔记总结记录) 一.linux常见命令 1.不常用 2.常用 3.数据查找处理相关 1.g ...
- Shell入门(六)之Shell pipe(管道)
Shell入门(六)之Shell pipe(管道) Shell pipe(管道)命令 pipe(管道)命令使用|界定符号. pipe管道命令|,仅能处理经由前面一个指令传来的信息,也就是标准输出(st ...
- Spark Shell入门教程
教程目录 0x00 教程内容 0x01 Spark Shell 操作 1. 启动与关闭 Spark Shell 2. 使用 Spark Shell 进行 Scala 编程 0x02 测试词频统计案例 ...
- shell linux教程,Shell入门基础知识
Shell 简介 Shell作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 常常作为批处理命令来 ...
- shell 文件路径有空格_Python学习第57课-shell入门之基本简单命令(一)
[每天几分钟,从零入门python编程的世界!] 我们现在学习shell操作,对于shell的命令,我们就把它看做新的语言,shell语言,它是不同于其他编程语言的. 就像我们学习一门编程语言,都是从 ...
- Fish shell 入门教程
命令行是程序员的必备技能.图形界面虽然好看,解决问题还是要靠命令行. 命令行由 Shell 提供.各种命令通过 Shell,传递给操作系统的内核.学习命令行就是在学习 Shell. Shell 有好几 ...
- shell入门基础知识
第一章:什么是shell 1.概念 在计算机科学中,Shell俗称壳(用来区别于核),是指"为使用者提供操作界面"的软件(command interpreter,命令解析器).它类 ...
- Shell入门笔记:Linux批量提取文件名/shel文件名提取日期/NCL批量读取文件(shell脚本结合)
在大型计算时,我们会使用linux系统,而linux系统下使用Shell脚本进行一些批处理任务会十分方便,在这里,我将以我个人遇到的问题为例,结合Shell语言的一些常用命令和知识点,完成对于Shel ...
最新文章
- Could not find codec parameters for stream 0 (Video: h264, none)
- nginx 学习笔记(1) nginx安装
- Apache 反向代理,Laravel获取用户真实IP
- 将一张表的主键(ID)重置为从1开始自增排列
- 这些高校竟因名字太“坑爹”被误会为三本?盘点九所实力强劲但被名字耽误的大学...
- 服务器性能指标(二)——CPU利用率分析及问题排查
- jax-ws和jax-rs_使用JAX-RS和Jetty创建Web服务和Rest Server
- centos部署时间服务器
- [转帖]升级 Ubuntu,解决登录时提示有软件包可以更新的问题
- ES6新特性_ES6语法糖-子类对父类方法的重写---JavaScript_ECMAScript_ES6-ES11新特性工作笔记037
- VS2015 设置结构成员对齐
- CSS实现tag标签挂载放到卡片上
- chrome安装JSONview插件,即可在浏览中查看json文件
- Hive建表语句的中文注释乱码问题
- Centos7.5之Linux系统安装
- 怎么成为开源贡献者_我如何成为一名更好的设计师并通过Jolloficons为开源做贡献...
- Excel 表格删除重复数据
- 野火STM32F1开发板 IIC 0.96OLED 波形显示
- 联想ThinkPadE455实现FN禁用(F1-F12标准功能与特殊功能切换)
- K 近邻算法 API
热门文章
- ODBC的JAR包和PLSQL
- Vijos P1448 校门外的树【多解,线段树,树状数组,括号序列法+暴力优化】
- 27个提升效率的iOS开源库推荐
- vaadin ---用maven创建vaadin 的工程
- 数据库设计中一个矛盾:数据库外键,用还是不用?你怎么看.?
- python实现get请求 模块_python爬虫 基于requests模块发起ajax的get请求实现解析
- Android应用中使用及实现系统“分享”接口
- 解决ADT无法在线更新
- 用jdbc连接hive server需要用到的 几个jar包
- android 将.txt文件转化为.db并使用raw下的数据文件