《Shell 教程-菜鸟教程》笔记

本文是关于Shell教程的笔记,涵盖了简单语法、命令、变量类型、test命令的使用、函数、文件包含以及条件语句等内容。讲解了为什么使用`./test.sh`而非`test.sh`的原因,介绍了局部变量、环境变量和shell变量的区别,并详细阐述了如何进行算术运算、函数定义以及参数传递。此外,还讨论了Shell中的文件测试和重定向命令。
摘要由CSDN通过智能技术生成

简单语法、命令

#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

echo 命令用于向窗口输出文本。

readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

echo -e 处理转义字符,开启转义

echo -n 不换行输出,或在字符串末尾加\c 不换行

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。

let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量。如果表达式中包含了空格或其他特殊字符,则必须引起来。自加操作:let no++ 、let a=5+4

#知识点

为什么./test.sh,而不是 test.sh

./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

shell三种变量

三种变量:

  • 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
  • 2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
  • 3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

###csh与bash不同

csh中$status与shell中$?含义相同:表示上个命令的退出状态,或函数的返回值。

csh:
setenv FILTERSFILTERBIN.RES
#通过此函数并不能添加或修改 shell 进程的环境变量,或者说通过setenv函数设置的环境变量只在本进程,而且是本次执行中有效。如果在某一次运行程序时执行了setenv函数,进程终止后再次运行该程序,上次的设置是无效的,上次设置的环境变量是不能读到的。
bash:
export FILTERS=FILTERBIN.RES
#export设置环境变量是暂时的,只在本次登录中有效,可修改如下文件来使命令长久有效。

#基本语法

使用一个定义过的变量,只要在变量名前面加美元符号即可,如:

your_name="qinjx"
echo $your_name
echo ${your_name} #变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界

使用 unset 命令可以删除变量(unset 命令不能删除只读变量)。语法:

unset variable_name

获取字符串长度

string="abcd"
echo ${#string} #输出 4

提取子字符串

# 以下实例从字符串第 2 个字符开始截取 4 个字符:
string="runoob is a great site"
echo ${string:1:4}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值