自学linux第三天

在终端输出Hello World 交互模式

写出shell脚本hellowworld,分别使用zsh和bash解释器,增加权限并执行

1.创建hello_bash.sh文件 touch hello_bash.sh

2.打开hello_bash.sh文件,在文件内输入命令echo "Helloworld from bash"

3.增加执行权限,chmod +x hello_bash,sh

4.执行脚本,./hello_bash,sh

zsh 有 5 种变量:整数、浮点数(bash 不支持)、字符串、数组、哈希表。Zsh 的变量多数情况不需要提前声明或者指定类型,可以直接赋值和使用。

给变量num1赋值整数123,请写出赋值语句

给变量num1赋值浮点数123,请写出赋值语句

给变量str1赋值字符串abcde,请写出赋值语句

如果字符串中包含空格等特殊字符,需要加(引号 ),可以是(单引号),也可以是(双引号)
str2='abc def'

有单引号和双引号有什么区别?

双引号可以使用变量而单引号不行。

num=123, 使用变量str3表示 num is 123,写出字符串使用变量表达式

num1=1,num2=2,num3=num1+num2,求num3。

字符串str=abcdef,求第二到第四的字符和最后一次字符。

 (( )) 用于数值比较等操作,如果为真返回 0,否则返回 1
 && 后边的语句在前边的语句为真时才执行
 注意这里只能使用双等号来比较

双括号里边可以使用与(&&)或(||)非(!)操作符,同 c 系列语言

比较字符串要用 [[,内侧要有空格

循环语句
while [[ ]] {
    break/continue
}
# 样例 死循环
 while ((1)) {
    echo good
}

until 和 while 相反,不满足条件时运行,一旦满足则停止

until [[ ]] {
}

for 循环主要用于枚举,这里的括号是 for 的特有用法,不是在子 shell 执行。括号内是字符串(可放多个,空格隔开)、数组(可放多个)或者哈希表(可放多个,哈希表是枚举值而不是键)。i 是用于枚举内容的变量名,变量名随意。

# 格式
for i ( ) {
}
# 样例
for ((i=0; i < 10; i++)) {
    echo $i
}

repeat 语句用于循环固定次数,n 是一个整数或者内容为整数的变量。

repeat n {
}

分支逻辑用 if 也可以实现,但 case 更适合这种场景,并且功能更强大。

# 格式 + 样例
case $i {
    (a)
    echo 1
    ;;

    (b)
    echo 2
    # 继续执行下一个
    ;&

    (c)
    echo 3
    # 继续向下匹配
    ;|

    (c)
    echo 33
    ;;

    (d)
    echo 4
    ;;

    (*)
    echo other
    ;;
}

;; 代表结束 case 语句,;& 代表继续执行紧接着的下一个匹配的语句(不再进行匹配),;| 代表继续往下匹配看是否有满足条件的分支。

select 语句是用于根据用户的选择决定分支的语句,语法和 for 语句差不多,如果不 break,会循环让用户选择。

# 格式
select i ( ) {
}
# 样例
select i (aa bb cc) {
    echo $i
}

输出是这样的。

1) aa  2) bb  3) cc
?#

按上边的数字加回车来选择。

异常处理语句
# 格式
{
    语句 1
} always {
    语句 2
}

无论语句 1 是否出错,都执行语句 2。

获取字符串的长度:

字符串拼接:

“str2+=$str1” 通常表示将字符串str1的值追加到字符串str2的末尾,并将结果重新赋值给str2

字符串切片:逗号前后不能有空格。字符位置是从 1 开始算起的。

字符串截断

#是从字符串的左往右删,%是从字符串的右往左删

字符串查找

str=abcdef
echo $str[(I)cd]
3

遍历字符

字符串替换 

bc替换成ef

str=abcabc
echo ${str/bc/ef}

aefabc

删除字符串

替换字符串

删除所有匹配到的字符串

只替换开头的字符串

替换结尾的字符串

如果匹配到了则输出空字符串

如果匹配不到,则输出原字符串

加(M)后效果反转

按位置删除字符,删除第一个字符

删除多个字符

按位置替换字符。

大小写转换

目录文件名截取

相对路径转绝对路径

读取文件内容到字符串

读取进程输出到字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值