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入门(一)相关推荐

  1. shell入门学习笔记-12-命令详解: echo与printf

    系列目录与参考文献传送门: shell入门学习笔记-序章 命令详解 admindeMacBook-Pro:myshell admin$ type cd cd is a shell builtin ad ...

  2. shell入门学习笔记-15-命令详解: 三剑客之一awk-分支语句、数组

    系列目录与参考文献传送门: shell入门学习笔记-序章 awk分支控制 if admindeMacBook-Pro:~ admin$ seq 5 |awk '{if($0%2) print $0}' ...

  3. linux常见命令以及shell入门编程(笔记总结记录)

    linux常见命令以及shell入门编程(笔记总结记录) 文章目录 linux常见命令以及shell入门编程(笔记总结记录) 一.linux常见命令 1.不常用 2.常用 3.数据查找处理相关 1.g ...

  4. Shell入门(六)之Shell pipe(管道)

    Shell入门(六)之Shell pipe(管道) Shell pipe(管道)命令 pipe(管道)命令使用|界定符号. pipe管道命令|,仅能处理经由前面一个指令传来的信息,也就是标准输出(st ...

  5. Spark Shell入门教程

    教程目录 0x00 教程内容 0x01 Spark Shell 操作 1. 启动与关闭 Spark Shell 2. 使用 Spark Shell 进行 Scala 编程 0x02 测试词频统计案例 ...

  6. shell linux教程,Shell入门基础知识

    Shell 简介 Shell作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 常常作为批处理命令来 ...

  7. shell 文件路径有空格_Python学习第57课-shell入门之基本简单命令(一)

    [每天几分钟,从零入门python编程的世界!] 我们现在学习shell操作,对于shell的命令,我们就把它看做新的语言,shell语言,它是不同于其他编程语言的. 就像我们学习一门编程语言,都是从 ...

  8. Fish shell 入门教程

    命令行是程序员的必备技能.图形界面虽然好看,解决问题还是要靠命令行. 命令行由 Shell 提供.各种命令通过 Shell,传递给操作系统的内核.学习命令行就是在学习 Shell. Shell 有好几 ...

  9. shell入门基础知识

    第一章:什么是shell 1.概念 在计算机科学中,Shell俗称壳(用来区别于核),是指"为使用者提供操作界面"的软件(command interpreter,命令解析器).它类 ...

  10. Shell入门笔记:Linux批量提取文件名/shel文件名提取日期/NCL批量读取文件(shell脚本结合)

    在大型计算时,我们会使用linux系统,而linux系统下使用Shell脚本进行一些批处理任务会十分方便,在这里,我将以我个人遇到的问题为例,结合Shell语言的一些常用命令和知识点,完成对于Shel ...

最新文章

  1. Could not find codec parameters for stream 0 (Video: h264, none)
  2. nginx 学习笔记(1) nginx安装
  3. Apache 反向代理,Laravel获取用户真实IP
  4. 将一张表的主键(ID)重置为从1开始自增排列
  5. 这些高校竟因名字太“坑爹”被误会为三本?盘点九所实力强劲但被名字耽误的大学...
  6. 服务器性能指标(二)——CPU利用率分析及问题排查
  7. jax-ws和jax-rs_使用JAX-RS和Jetty创建Web服务和Rest Server
  8. centos部署时间服务器
  9. [转帖]升级 Ubuntu,解决登录时提示有软件包可以更新的问题
  10. ES6新特性_ES6语法糖-子类对父类方法的重写---JavaScript_ECMAScript_ES6-ES11新特性工作笔记037
  11. VS2015 设置结构成员对齐
  12. CSS实现tag标签挂载放到卡片上
  13. chrome安装JSONview插件,即可在浏览中查看json文件
  14. Hive建表语句的中文注释乱码问题
  15. Centos7.5之Linux系统安装
  16. 怎么成为开源贡献者_我如何成为一名更好的设计师并通过Jolloficons为开源做贡献...
  17. Excel 表格删除重复数据
  18. 野火STM32F1开发板 IIC 0.96OLED 波形显示
  19. 联想ThinkPadE455实现FN禁用(F1-F12标准功能与特殊功能切换)
  20. K 近邻算法 API

热门文章

  1. ODBC的JAR包和PLSQL
  2. Vijos P1448 校门外的树【多解,线段树,树状数组,括号序列法+暴力优化】
  3. 27个提升效率的iOS开源库推荐
  4. vaadin ---用maven创建vaadin 的工程
  5. 数据库设计中一个矛盾:数据库外键,用还是不用?你怎么看.?
  6. python实现get请求 模块_python爬虫 基于requests模块发起ajax的get请求实现解析
  7. Android应用中使用及实现系统“分享”接口
  8. 解决ADT无法在线更新
  9. 用jdbc连接hive server需要用到的 几个jar包
  10. android 将.txt文件转化为.db并使用raw下的数据文件