20240812 Work Shell脚本编写

一 Linux系统中Shell脚本编写

shell介绍

1 脚本解释器

#!/bin/sh#!/bin/bash 都是脚本文件的开头,用来指定脚本文件的解释器。其中 #!/bin/sh 指定的是 Bourne shell 解释器,而 #!/bin/bash 指定的是 Bash shell 解释器。

Bash shellBourne shell 的增强版,它支持更多的特性和语法。因此,如果脚本中需要使用 Bash shell 特有的语法或特性,就需要使用 #!/bin/bash 来指定解释器。

Bash比Sh功能多

2 变量的声明与赋值

在Shell脚本中,声明变量非常简单,不需要指定变量类型。

等号赋值

给变量赋值时,用=号,但不允许有空格存在。

MY_VARIABLE=value
myVariable=anotherValue

使用双引号或单引号来包含字符串值,这取决于是否需要保留变量内的特殊字符。

myString="This is a string."
mySingleQuoted='This is also a string.'

从执行的命令赋值

使用反引号 `` 或者 $() 来运行命令并将结果赋给变量

myCommandResult=`date`
# 或者
myCommandResult=$(date)

双引号,单引号

shell脚本使用双引号,单引号输出字符串的区别如下

双引号 " "单引号 ’ ’
执行变量替换不执行变量替换
执行命令替换不执行命令替换
仅保留空白字符保留所有字符原本内容输出

双引号中若想要使换行符"\n", echo打印时需要 echo -e,或者用printf打印

例如:

echo "Today is $(date)"

会输出Today is (date的命令执行结果)

访问变量

访问变量值时,需要在变量前加 $ 符号。也可使用 ${} 来明确变量名字的边界。

echo "The value of the variable is: $myVariable"
long_variable_name=value
echo "The value is: ${long_variable_name}"

强制转换

将变量转换为数字或其他格式。

echo "The number is: $((myVariable))"

算数运算

Shell脚本中,$(()) 运算符将变量或表达式转换为整数并执行算术运算。

在这里插入图片描述
在这里插入图片描述

判断条件

if 语句可以用 [ ] 和 ( ) 表达判断条件。

#!/bin/bash

# 定义一个变量
MY_VAR=5

# 使用方括号进行条件测试
if [ "$MY_VAR" -eq 5 ]; then
    echo "MY_VAR is equal to 5"
else
    echo "MY_VAR is not equal to 5"
fi

条件运算符
在这里插入图片描述
在这里插入图片描述

使用 ( ) 的判断条件不需要用 $ 符合,且 (()) 可以直接处理整数运算

#!/bin/bash

# 定义一个变量
MY_VAR=5

# 使用圆括号进行条件测试
if (( MY_VAR == 5 )); then
    echo "MY_VAR is equal to 5"
else
    echo "MY_VAR is not equal to 5"
fi

For循环脚本

最简单的 for 循环形式是遍历一个列表或一系列的值。

#!/bin/bash

# 定义一个列表
fruits=("apple" "banana" "cherry")

# 遍历列表
for fruit in "${fruits[@]}"; do
    echo "I like $fruit"
done

在Shell脚本中,${fruits[@]} 是一种特殊的语法,用于引用数组 fruits 中的所有元素。这里对这个表达式的各个部分做一个详细的解释:

$ { variable }:这是变量引用的基本语法。它告诉 Shell 解释器要使用变量 variable 的值。
[@] : 这是一个特殊的操作符,用于获取数组中的所有元素。
当它们组合在一起时,${fruits[@]} 表示“获取数组 fruits 中的所有元素,并作为一个列表返回”。

遍历一系列的值

#!/bin/bash

# 遍历一系列值
for i in 1 2 3 4 5; do
    echo "Number: $i"
done

# 使用通配符遍历文件
for file in *.txt; do
    echo "Processing file: $file"
done

二 执行命令时绑定CPU核心的命令 taskset

查看服务器上一共有多少CPU

lscpu

运行taskset命令绑定CPU

taskset -c 0,10 ./bind_core

绑定taskset命令介绍

  • 26
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值