私人建设网站,网站推广新手入门教程,室内装饰设计软件,长沙建网文章目录查看shell解释器写hello world多命令处理执行变量常用系统变量自定义变量撤销变量静态变量变量提升为全局环境变量特殊变量$n$#$* $$?运算符:条件判断比较流程控制语句ifcasefor 循环while 循环read读取控制台输入基本语法:函数系统函数basenamedirname自定义函数shel…
文章目录查看shell解释器写hello world多命令处理执行变量常用系统变量自定义变量撤销变量静态变量变量提升为全局环境变量特殊变量$n$#$* $$?运算符:条件判断比较流程控制语句ifcasefor 循环while 循环read读取控制台输入基本语法:函数系统函数basenamedirname自定义函数shell 工具cutsed查看shell解释器 查看系统默认shell解释器
垃圾火狐:
写hello world
#!/bin/bash (指定shell解析器)#注释
echo hello world执行: 多命令处理执行
#!/bin/bash
cd /root/leanshell/
touch banzhang.txt
echo i love cls banzhang.txt变量
变量名称可以是字母,数字下划线,不能以数字开头 在bash中变量默认是字符串类型,不能直接进行数值运算.
变量的值有空格,需要使用双引号或者单引号括起来.
显示当前shell所有变量
常用系统变量
$HOME $PWD $SHELL $USER等自定义变量
变量名值
等号两边没有空格
撤销变量
unset 变量
静态变量
readonly 变量 静态变量是不能unset的
变量提升为全局环境变量
这样变量就可以提供给其他的shell程序使用了 export 变量名
特殊变量
$n
$n : n 是数字, $0 表示该脚本的名称, $1-9代表第一到第九个参数(命令行参数). 十以上的参数可以这样表示: ${10}
#!/bin/bash
echo $0 $1 $2$#
获取所有输入参数的个数,常用来循环
#!/bin/bash
echo $0 $1 $2
echo $#$* $
$* :变量代表命令行中所有的参数, $*把所有的参数看成一个整体.
$ : 代表命令行中的所有参数, $把每一个参数区分对待.
#!/bin/bash
echo $0 $1 $2
echo $#$?
最后一次执行命令的返回状态. 如果这个变量是0 ,证明上一个命令执行正确; 如果变量的值非零, (具体哪一个数,由命令自己来决定),则证明上一个命令执行不正确.
运算符:
$((运算式))或$[运算式]expr ,-,*,/,% 注意:expr运算符前后有个空格
表示23*4
条件判断
[ condition ]
# condition前后有空格比较 流程控制语句
if
if [ 条件判断式 ];then程序
fi
或者
if [ 条件判断式 ]then程序
fiif [ 条件判断式 ]条件判断表达式前后有空格, if之后有空格
#!/bin/bash
if [ $1 -eq 1 ]thenecho simple 1
elif [ $1 -eq 2 ]thenecho simple 2
ficase
case $变量名 in值1)如果变量的值等于值1则执行程序1;;值2)如果变量的值等于值2则执行程序2;;…省略其他分支…*)如果变量的值都不是以上的值则执行此程序;;
esac#!/bin/bash
case $1 in1)echo simple1
;;2)echo simple2
;;*)echo none
;;
esacfor 循环
语法一:
for 变量 in 值1 值2 值3 …(可以是一个文件等)do程序done这种语法中for循环的次数取决于in后面值的个数空格分隔有几个值就循环几次并且每次循环都把值赋予变量。也就是说假设in后面有三个值for会循环三次第一次循环会把值1赋予变量第二次循环会把值2赋予变量以此类推。语法二:
for (( 初始值;循环控制条件;变量变化 ))do程序done语法二中需要注意:
初始值:在循环开始时需要给某个变量赋予初始值如i1;循环控制条件:用于指定变量循环的次数如i100则只要i的值小于等于100循环就会继续;变量变化:每次循环之后变量该如何变化如ii1。代表每次循环之后变量i的值都加1。
#!/bin/bash
sum0
for((i1;i100;i))
dosum$[$sum$i]
doneecho $sum #!/bin/bash
for i in $*
doecho $i
donewhile 循环
while [ 条件判断式 ]do程序done
#!/bin/bash
i1
s0
while [ $i -le 100 ]
#如果变量i的值小于等于100dos$(( $s$i ))i$(( $i1 ))done
echo The sum is: $sread读取控制台输入
基本语法:
read(选项)(参数) 选项: -p :指定读取值时的提示符 -t :指定读取值时等待时间(秒) 参数: 指定读取值的变量名 (用来存变量的)
#!/bin/bash
read -t 7 -p Enter your name: Name
echo $Name
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gjyo4hy7-1677309668837)(…/images/Pasted%20image%2020230225144938.png)]
函数
系统函数
basename
就是在文件路径中,的到文件的名称
basename[string /pathname][suffix]看例子就懂了
dirname
dirname 文件绝对路径去掉文件名后,返回路径 自定义函数
function 函数名 () {程序
}
要在函数调用之前声明函数
#!/bin/bash
function sum()
{s0;s$[ $1$2 ]echo $s
}
read -p nums1 n1;
read -p nums2 n2;
sum $n1 $n2; shell 工具
cut
剪 就是从一个文件中剪切需要的内容 基本语法:
cut [选项参数] filename选项参数: -f :列号,提取第几列 -d :分隔符,按照指定分割符分割列
例子
sed
一个流编辑器 语法:
sed[选项参数] command filename选项参数 -e : 直接在指令列模式上进行sed的动作编辑
命令功能描述
示例