Shell脚本简单学习
一、什么是shell脚本简单来说:一般来说写一个shell脚本,是为了只运行脚本就可以完成多个命令操控。
详细来说:Shell是操作系统的外壳,它是一个命令解释器,可以通过接收用户输入的Shell命令来控制和操作计算机。在Linux中,Shell命令包括ls、cd、pwd等,通过这些命令可以启动、暂停、停止程序的运行,以及对计算机进行各种操作和控制。Shell脚本则是用于编写一系列Shell命令的脚本语言,可以用于自动化任务、批量处理文件、系统管理和配置等各种用途,提高工作效率并简化重复性操作。
文件形式:一般以.sh结尾
二、代码实践加解释
1.写一个test.sh
#!/bin/bash
echo "请输入a的值"
read a
name="爱吃"
echo "我是天下第$a$name"
解释
#!/bin/bash
#!用来声明脚本由什么shell解释,否则使用默认shell
echo "请输入a的值"
echo输出(类似于Python的print,C语言的printf,C++的cout)
echo命令的基本语法是:echo [选项] [字符串/变量]
read a
read 是一个 Bash shell 内置命令,用于从标准输入中读取用户输入,并将其保存到指定的变量中。
name="爱吃"
name="爱吃",字符串赋值。需要注意的是name="爱吃"千万不能出现空格, name="爱吃"是一个有效的变量赋值语句,而 name = "爱吃"则会将空格也包含在变量名中。
echo "我是天下第$a$name"
$a和$name是变量引用(Variable Expansion),用于获取变量的值
2.例子
#!/usr/bin/env bash
cur_path="$(dirname "$(readlink -f "$0")")"
cd $cur_path
mkdir build_x64
cd build_x64
cmake .. -DPLATFORM=x64
cmake --build .
#!/usr/bin/env bash和#!/bin/bash有什么区别
#!/usr/bin/env bash 的作用是在 $PATH 环境变量指定的路径中查找 bash 程序,并使用第一个找到的程序来执行脚本。这样的好处是可以避免不同操作系统或环境下的差异。
#!/bin/bash 直接指定了 bash 程序的路径,如果系统上的 bash 所在路径不同,就可能导致脚本无法执行。
建议使用 #!/usr/bin/env bash 来指定解释器类型,这种方式比较通用,也更加灵活
$转义字符,$的常用用法
$# 传给脚本的参数个数
$0 脚本本身的名字
$1 传递给shell脚本的第一个参数
$2 传递给shell脚本的第二个参数
$@ 传给脚本的所有参数的列表
$* 以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可以超过9个
$$ 脚本运行的当前进程ID号
$? 显示最后命令的退出状态,0表示没有错误,其他表示有错误
cur_path="$(dirname "$(readlink -f "$0")")"
解释
这行代码的作用是获取当前脚本所在的目录路径,并保存量 cur_path 中。
$0 表示当前脚本的文件名(例如 test.sh),用“”将它括起来防止它被解释为多个参数
readlink -f "$0" 会返回 0 所指向的符号链接文件的绝对路径。如果 0 不是一个符号链接文件,就返回 0 的绝对路径。
$(...) 表示将其中的命令执行后的结果作为整体返回。
dirname "$(readlink -f "$0")"返回 (readlink -f "0") 所指向的文件所在的目录路径。
mkdir build_x64
在当前目录下创建一个名为 build_x64 的文件夹。
cmake .. -DPLATFORM=x64
使用 CMake 工具生成 x64 平台的 Makefile,并将 PLATFORM 变量设置为 x64。
cmake --build .
调用 make 命令进行编译构建。--build .指定在build目录进行构建
干货满满~~小助理给你点个赞!:loveliness:
页:
[1]