linux/shell脚本

27 阅读1分钟

基础知识

执行

将保存为 test.sh,并 cd 到相应目录:

chmod +x ./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 告诉系统说,就在当前目录找。

关键字介绍

#!/bin/bash        // 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。

your_name="qinjx"  // 命名变量与赋值,等号左右不能有空格

echo $your_name    // echo输出关键字 $your_name使用变量1
echo ${your_name}  // echo输出关键字 ${your_name} 使用变量2(推荐)

readonly your_name // readonly将变量设置成制毒

unset your_name    // unset删除变量

# 这是一个注释       // #注释标识

:<<EOF             // :<<EOF 多行注释内容 EOF 
注释内容...  
注释内容...  
注释内容...  
EOF

:<<'               // :<<' 多行注释内容 ' 
注释内容...  
注释内容...  
注释内容...  
'  
  
:<<!               // :<<! 多行注释内容 ! 
注释内容...  
注释内容...  
注释内容...  
!

学习资料

Shell教程

使用背景

1、简单化多条指令的执行。

我的mac系统,在安装完nvm的node控制版本后,在终端使用nvm指令的时候总是失败,需要执行以下指令才可以完成。

source ~/.nvm/nvm.sh
nvm use 想要的node版本。

于是,想着写个sh脚本,代替我执行这两条指令。

实现

#!/bin/bash
echo "开始执行nvm简化指令"
source ~/.nvm/nvm.sh
nvm ls
nvm use v14.18.2
echo "执行完毕~"