linux学习笔记

1. shell变量名遵循规则

  1. 首个字母必须为字母 (a-z,A-Z)
  2.  中间不能有空格,可以使用下划线 (_)
  3.  不能使用标点符号
  4.  不能使用bash中的关键字
  5.  可以用语句给变量赋值 例: dirs=`ls /etc`
  6. 使用变量需要在前面加上$  例: echo $dirs
  7. 变量名外面的花括号是可选的,加花括号是为了帮助解释器识别变量名的边界,但推荐使用变量名加上花括号
  8. 已经定义的变量,也科研之直接被重新定义

2. shell字符串

  • 单引号

单引号里面的字符都会原样输出

#!/bin/bash
root@803e41ac5ea4:/# echo 'this is ECho % \n  \c  \\\ //'
this is ECho % \n  \c  \\\ //

单引号中字符串变量是无效的    

#!/bin/bash
root@803e41ac5ea4:/# echo ' $name $name \t'
 $name $name \t

单引号字符串中不能出现单引号 (即使使用转义字符也无效)

#!/bin/bash
root@803e41ac5ea4:/# echo ' this is ' '
> exit
>

root@803e41ac5ea4:/# echo 'this is \' this is'
> 

会提示你继续输入,指导输入下一个单引号退出打印

  • 双引号

双引号中可以有变量

#!/bin/bash
root@803e41ac5ea4:/# your_name="Swift"
root@803e41ac5ea4:/# echo " your name is ${your_name}. "
 your name is Swift. 

双引号中可以出现转义字符

#!/bin/bash
root@803e41ac5ea4:/# your_name="Swift"
root@803e41ac5ea4:/# echo " your name is ${your_name}.\t hello! "
 your name is Swift.\t hello! 

双引号中可以出现双引号 (转义字符)

#!/bin/bash
root@803e41ac5ea4:/# your_name="Swift"
root@803e41ac5ea4:/# echo " your name is ${your_name}.\t \" hello! "
 your name is Swift.\t " hello! 
  • 拼接字符串
#!/bin/bash
root@803e41ac5ea4:/# your_name="Swift"
root@803e41ac5ea4:/# str1="hello , "${your_name}" !"
root@803e41ac5ea4:/# echo $str1
hello , Swift !
root@803e41ac5ea4:/# str2="hello , ${your_name} !"
root@803e41ac5ea4:/# echo $str2
hello , Swift !
  • 获取字符串长度

${#string}  string为要获取字符串

#!/bin/bash
root@803e41ac5ea4:/# echo ${#str1}
15
root@803e41ac5ea4:/# echo ${#str2}
15
  • 提取字符串

expr index "$string" index_str  

说明:string 要查找的字符串  index_str 查找的字符串, 返回子字符第一次出现的位置

#!/bin/bash
root@803e41ac5ea4:/# strings="My name is Swift !"
root@803e41ac5ea4:/# echo `expr index "$strings" f`
15

3. shell 数组

  • 基础定义

     (1)bash 只支持1维数组(不支持多维数组)

     (2)shell数组不限定数组的大小

     (3)数组元素的下标从0开始

     (4)数组定义可以不使用不连续的下标,且下标范围没有限制

  • 定义数组

数组名=(值1 值2 值3 ... 值n)

#!/bin/bash
##例:
##方法一
array_name=(name1 name2 name3 ... namen)

##方法二
array_name=(name1
            name2
            name3
            ...
            namen
)

##方法三   单独定义数组的值
array_name[0]=name1
array_name[1]=name2
...
array_name[n]=namen
  • 读取数组 

            ${数组名[下标]}

#!/bin/bash
##例
##    取单独某个值
value=${arry_name[1]}

## 获取数组中所有的元素  下面俩种方法都可以获取
values=${array_name[*]}

values=${array_name[@]}
  • 获取数组长度
#!/bin/bash
## 获取数组的长度
length=${#array_name[@]}
length=${#array_name[*]}

## 获取单个元素的长度
single_length=${#array_name[n]}

数组获取长度的方法实际与获取字符串长度的方法相同。

4. shell 注释

  1. shell中以"#"开头的行就是注释
  2. shell中没有多行注释,只能多行注释时都在前面加上"#"
  3. 可以把需要注释的一段代码写到一个function中,可以减少#号的大片书写

5. shell echo 命令

  • 显示普通字符串
#!/bin/bash
root@803e41ac5ea4:/# echo "My name is Swift"
My name is Swift
root@803e41ac5ea4:/# echo  My name is Swift
My name is Swift
  • 显示转义字符
#!/bin/bash
root@803e41ac5ea4:/# echo "\"My name is Swift\""
"My name is Swift"
  • 显示变量
#!/bin/bash
root@803e41ac5ea4:/# my_name="Swift"
root@803e41ac5ea4:/# echo "My name is ${my_name}"
My name is Swift
  • 显示换行  

此处需要使用参数-e 来开启转义字符

#!/bin/bash
root@803e41ac5ea4:/# echo -e " ok \n my name is Swift"
 ok 
 my name is Swift
  • 显示不换行
#!/bin/bash
root@803e41ac5ea4:/# echo -e " ok \c my name is Swift"
 ok my name is Swift
  • 显示结果定向到文件
#!/bin/bash
echo "My name is Swift" >myFile
  • 不进行转义(用单引号)
#!/bin/bash
root@803e41ac5ea4:/# echo 'My name is Swift \n'
My name is Swift \n

显示命令结果 ( ` )

#!/bin/bash
root@803e41ac5ea4:/# echo `date`
Sat Sep 15 10:04:26 UTC 2018

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值