博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell笔记(基本知识)
阅读量:5100 次
发布时间:2019-06-13

本文共 2218 字,大约阅读时间需要 7 分钟。

一、编写第一个shell程序
实例1:
【程序】
1 #!/bin/sh2 echo "hello word !"

【运行】

【说明】
第一行:#i/bin/sh  表示使用Ubuntu系统中/bin/sh下的一个解释器来解释shell,进行运行。
第二行:echo "hello word !"  表示打印“hello word”这个字符
另外在shell中 # 是用来注释的
 
二、shell中的变量
(1)变量定义:直接使用=即可
(2)变量赋值:直接使用=
(3)变量引用:变量前面在$;(两种用法:$var 和 ${var} )
实例2:
1 #!/bin/sh2 string="new string"3 echo $string

运行结果:

 
三、单引号和双引号的区别
实例3:
1 #!/bin/sh2 # 单引号和双引号演示3 str="new string"4 echo '$str'5 echo  $str6 echo "$str"

运行结果:

说明:单引号表示直接的替换,即使有$符号,也是直接输出$str;
双引号中使用$会将变量的值的读取出来使用。
注意:反引号表示命令替换,例如:
\$表示$
\`表示`
\"表示"
\\表示\
参考资料:
 
四、调用linux下的命令
实例4:
1 #!/bin/sh2 # 在linux下调用命令3 mkdir test_dir   # 在当前目录下创建一个目录4 cd test_dir      # 进入test_dir目录5 touch a.c        # 创建一个文件6 cd ..            # 返回上层目录7 echo `pwd`       # 打印当前目录

说明:在shell脚本程序中,使用linux下的命令是直接调用的。关于获取linux命令的返回值是使用反引号(键盘上ESC下面的那个按键,符号是`)。

 
五、if结构
典型表达式:
if [表达式]; then
       xxx 
else
       xxx 
fi
应用:
(1)判断文件是否存在。(-f),使用举例:if [ -f b.c ]; then
(2)判断目录是否存在。(-d),使用举例:if [ -d "/mnt" ]; then
(3)判断字符串是否相等。(=),使用举例:if [ "abc" = "abc" ]; then
(4)判断数字是否相等(-eq)、大于(-gt)、小于(-lt)、大于等于(-ge)、小于等于(-le)。使用举例:if [ $num1 -eq $num2 ]; then
(5)判断字符串是否为空。(-z),使用举例:if [ -z "abc" ]; then
注意:在[]中的空格,前后都需要空格,否则会运行错误。
(6)if判断式中'-o'表示逻辑或。使用举例:if [ "1" = "2" -o "3" = "3" ]; then
(7)逻辑与&&和逻辑或||与简写的if表达式相结合
例如:
[ "123" = "abc"  ] || echo "not equal"  # 执行结果:输出not equal
[ "123" = "123" ] && echo "equal"       # 执行结果:输出equal
说明:在||中,前面的语句如果成立,则后面的命令不执行;如果不成立,则后面的命令执行。
 
六、echo创建文件
(1)在shell中可以直接使用echo指令创建一个新的文件
例:echo "abc" > a.txt  # 创建一个文件,内容和abc
(2)>>表示在文件末尾追加一个内容
例:echo "cde" > a.txt  # 在文件末尾追加一个字符"cde"
 
九、shell的传参
例:shell程序
运行结果:
$0是执行这个shell程序的解析的名字,$1是第一有效参数的值,$2是第二个……
 
六、for、while循环和case结构
实例5:
1 while [ $# -gt 0 ] ; do2         case "$1" in3         --) shift ; break ;;4         -a) shift ; APPEND=yes ;;5         -n) shift ; BOARD_NAME="${1%%_config}" ; shift ;;6         *)  break ;;7         esac8 done

(1)上面是一个while和case嵌套的一个例子。

(2)break对case是没有作用的,表示的是跳出while循环。
(3)case中语句是以;;作为结尾的。
(4)shif是表示输入的参数左移一个。
(5)$#表示执行shell时传递的参数个数
(6)$1表示shell的第一个参数
 
 
----------------------------------------------------------------------------------
  声明:部分内容摘录至《朱老师物联网视频教程》
----------------------------------------------------------------------------------
 
 

转载于:https://www.cnblogs.com/zou107/p/5072750.html

你可能感兴趣的文章
ubuntu 系统环境配置记录
查看>>
C# 流总结
查看>>
org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: file:/input
查看>>
jumpserver安装与部署
查看>>
Apache,php配置
查看>>
Python特殊语法:filter、map、reduce、lambda
查看>>
vs2008 此安装不支持该项目类型
查看>>
C# Hash算法
查看>>
转:C语言深度剖析三
查看>>
HDU 2095 find your present (2) 异或
查看>>
swipe滚动失效
查看>>
线程间操作无效: 从不是创建控件的线程访问它。
查看>>
WebStorm+Chrome调试Vue步骤
查看>>
PAT (Basic Level) Practise (中文)- 1022. D进制的A+B (20)
查看>>
数据类型和变量
查看>>
服务端的GET、POST请求
查看>>
Python之文件操作工具
查看>>
浅谈SQLiteOpenHelper之onCreate例子
查看>>
证券市场主体
查看>>
Educational Codeforces Round 69 (Rated for Div. 2) A - DIY Wooden Ladder
查看>>