快速学会shell编程(shell教程+100个案例)

#、100个案例

https://blog.csdn.net/yugemengjing/article/details/82469785

1、简介

  • Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
  • 业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
  • 由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。
  • Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

2、shell教程

2.1、输出hello world

打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好(使用.hahaha作为拓展名也可以运行,为了见名知意,建议使用.sh),如果你用 php 写 shell 脚本,扩展名就用 .php 好了。

#!/bin/bash
echo "Hello World !"

# 输出结果:Hello World !

2.2、字符串

字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。

单/双引号字符串的使用:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
  • 双引号里可以有变量
  • 双引号里可以出现转义字符
#! /bin/bash


str='this is a string'
your_name='runoob'
str="Hello, I know you are \"$your_name\"! \n"
echo -e $str

# 输出结果: Hello, I know you are "runoob"! 

# 字符串拼接
your_name="runoob"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting  $greeting_1
# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2  $greeting_3

# 输出结果分别为:
# hello, runoob ! hello, runoob !
# hello, runoob ! hello, ${your_name} !



# 获取字符串长度 
string="abcd"
echo ${#string} #输出 4
# 提取子字符串
string="runoob is a great site"
echo ${string:1:4} # 输出 unoo
# 查找子字符串 (查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):
string="runoob is a great site"
echo `expr index "$string" io`  # 输出 4


2.3、变量

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。
#~ /bin/bash

your_name="qinjx"
echo $your_name
echo ${your_name}
# 两种cho输出的结果相同,都是:qinjx
# 那么第二种方式有什么用呢?不是反而显得更加复杂吗?

echo "$your_nameSB"
echo "${your_name}SB"
# 通过上述两行代码,可以看出作用
# 第一行不加花括号,会将your_nameSB当做一个变量,值为空,输出结果为空。
# 第二行加了花括号,能正确的识别到your_name是一个变量,值为qinjx,输出结果为qinjxSB。
# 推荐给所有变量加上花括号,这是个好的编程习惯。 

# 已定义的变量,可以被重新定义,如:
your_name="tom"
echo $your_name
your_name="alibaba"
echo $your_name
# 先输出 tom  再输出alibaba 

#使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
myUrl="https://www.google.com"
readonly myUrl
myUrl="https://www.runoob.com"
# 输出结果: test.sh:行5: myUrl: 只读变量

详细教程: https://www.runoob.com/linux/linux-shell-variable.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值