Shell 命令学习总结

一、概述

shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁,是一种命令语言。

二、使用

1、变量

复制代码
#! /bin/bash    # #!是一个约定标记,告诉系统用什么解释器来执行
echo XXX          # 用于向窗口输出文本
your_name="runoob.com"    # 注意变量名和等号之间不能有空格

# 获取字符串长度
string="abcd"
echo ${#string}   # 等价于echo ${#string[0]},获取字符串长度
echo #{string:1:2}   # 提取子字符串 索引从1-2

string="abc def ghi"
echo `expr index "$string" e`   # 输出字母e出现的位置,脚本中 ` 是反引号,而不是单引号 '
复制代码

2、数组

array_name=(value0 value1 value2 value3)
echo ${array_name[@]}     # 表示获取所有元素,@也可使用*
length=${#aray_name[@]}  # 获取数组长度
echo  $length

3、循环+多行注释

复制代码
for name in Zhangsan Lisi Wangwu; do
    echo "姓名: ${name}"    # 变量名外面的花括弧可加可不加
done

for file in $(ls /etc) 或 for file in "ls /etc"   # 列出/etc目录下的所有文件名

#多行注释
:<<EOF
注释内容...
注释内容...
EOF
复制代码

4、shell传递参数

复制代码
test.sh
#! /bin/bash
echo "执行的文件名:$0"
echo "$第一个参数为:$1"
echo "$第二个参数为:$2"
echo "$第三个参数为:$3"


sh test.sh param1 param2 param3    # 执行时,传参
复制代码

5、Shell基本运算符

5.1 算术运算符:

val=`expr 2 + 3`  # 注意`是反引号
echo $val

5.2 关系运算符

-eq    检查两个数是否相等,相等返回true

-ne   检查两个数是否不相等,不相等返回true

-lt     检查左边数小于右边数

-gt    检查左边数大于右边数

-le    检查左边数小于等于右边数

-ge   检查左边数大于等于右边数

a=10
b=20
if [ $a -eq $b ]    # 注意 [和$之间要有空格
then
    echo "相等"
else
    echo "不相等"
fi

5.3 布尔运算符

!  非运算

-o 或运算

-a 与运算

a = 10
b = 20
if [ $a -eq 10 -o $b -eq 10 ]   # 注意 -o是字母,不是数字0 
then
    echo "逻辑或判断成功"
else
    echo "逻辑或判断失败"
fi

5.4 文件测试运算符

-e file    # 检查文件或目录是否存在(exist),存在则返回true

-s file   #  检查文件大小(size)是否为空,不为空返回true

-x file   # 检查文件是否为可执行文件

-w file  # 检查文件是否可写

if [ -e $file ]
then
   echo "文件存在"
else
   echo "文件不存在"
fi

6、shell函数

复制代码
# shell函数
格式:
[ function ] funname () {   # [ function ] 表示这个字段可有可无
    action;
    return
}

demoFun(){
    echo "这是我的第一个 shell 函数!"
}
复制代码

7、 shell 输入/输出重定向

command > file 将输出重定向到file
command < file 将输入重定向到file
command >> file 将输出已追加的方式重定向到file
n > file 将文件描述符为n的文件重定向到file
n >& m 将输出文件m和n合并

注意: 0 是标准输入(stdin),1是标准输出(stdout),2是标准错误输出(stderr)

8、shell文件包含

shell也可以包含外部脚本,这样可以将一些公用代码封装成一个独立的文件

shell包含文件格式

. filename 或 source filename

test1.sh

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

url="http://www.runoob.com"

test2.sh

复制代码
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

#使用 . 号来引用test1.sh 文件
. ./test1.sh

# 或者使用以下包含文件代码
# source ./test1.sh

echo "菜鸟教程官网地址:$url"
复制代码

接下来,我们为 test2.sh 添加可执行权限并执行:

 chmod +x test2.sh 
 ./test2.sh 
 菜鸟教程官网地址:http://www.runoob.com

 

posted @   宇宙刘  阅读(100)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示