随笔 - 165,  文章 - 0,  评论 - 4,  阅读 - 18023

介绍:shell是一个命令行解释器,通过接收应用程序/用户命令,调用操作系统内核。

1.创建一个sh脚本并进行编辑  
touch b.sh  
vim b.sh

2.开头指定解析器并写入内容  
#!/bin/bash  
echo "hello"

3.赋予脚本执行权限并执行
chmod +x b.sh  
./b.sh (打开一个子shell)  
. b.sh (在当前shell里执行,无需打开子shell)
子shell设置的变量,父shell不可见  

4.查看系统变量的值  
echo $ HOME  

5.自定义变量  
变量名=变量值(=前后不可有空格)  
撤销变量:unset 变量名  
静态变量: readonly 变量名(不可unset)  
定义临时全局变量:export 变量名  
  
6.定义规则  
(1)不能以数字开头  
(2)环境变量建议大写  
(3)等号左右不能有空格  
(4)如果有空格,需要单引号或者双引号
(5)变量值默认都是字符串,不能直接数值计算  

7.特殊变量  
$n  
n:0表示脚本名称(如果没有创建子shell就会显示bash),1-9表示第1-9个参数,如果n>9,需要加花括号:${10}  

8.参数变量  
$*:代表命令行中所有参数,把所有参数看做了整体(具体指for i in "$*"这种情况)  
$@:代表命令行中所有参数,把每个参数区分对待  

9.判断执行最后一次命令的状态  
$?:如果返回0,说明上一次命令正确执行,不为0的话(可以自己定义)上一条命令没有被正确执行  
  
10.运算符  
O=$[5*5+6]  

11.条件判断  
[ condition ]:如果condition非空也为true,注意condition前后要有空格  
[ 7 -eq 7 ]  \  echo $?    输出为0    
多条件判断: [ fly ] && echo hello || echo haha

12.流程控制    
(1)  
if [ condition ]
then
    程序
elif [ condition ]
then
    程序
else
    程序
fi
if后面的空格不可以少,有if才有then  

(2)  
case $n in
"值1")
    程序
;;
"值2")
    程序
;;
*)
    程序
;;
esac  
case那行要以in结尾,;;代表一个条件的结束,*代表默认default  

(3) 
sum=0
for ((i=0;i<4;i++))
do
    sum=$[$sum+$i]
done  

for 变量 in 值1 值2 值3
do
    程序
done  

(4)  
while [ condition ]
do
    程序
done  

13.读取控制台输入
read -t n(等待读取的时间,不写则一直等待) -p "enter anything" o  
echo $o  

14.取路径里的文件名称  
basename 路径名 suffix(想要去掉的后缀)  
basename $0 .sh      输出:a  

15.取绝对路径  
dirname 文件绝对路径  

16.自定义函数  
funciton 函数名(){
    函数体
}  

17.正则表达式  
^a:匹配以a开头的所有行  
a$:匹配以a结尾的所有行  
.:匹配任意一个字符  
a*:后面有任意多个a  
[1,2]:匹配1或者2  
[1-9]:匹配1-9中的数字  
'\$':匹配$(要用单引号括起来)  

18.文本处理工具  
(1)cut -d " "(选定分隔符,默认为制表符"\t") -f n(选定第n列) 文件名      
从文件中以空格为分隔符切割出第n列的内容  
(2)awk -F " "(选定分隔符,默认为空格) -v i=1(赋值一个用户定义变量) '/pattern1/{action1} /pattern2/{action2}...' 文件名  
内置变量:FILENAME(文件名),NR(行数),NF(列数)
BEGIN和END:在首行和末行添加内容  

(3)sed [options] 'command' file(s)

(g是替换每行所有,不加只替换每行第一个)

B站教程:3天搞定Linux,1天搞定Shell

posted on   孜孜不倦fly  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示