shell
在计算机科学当中,shell就是一个命令解释器。
shell是位于操作系统和应用程序之间的,是他们二者最主要的接口。
shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。
shell是操作系统和应用程序之间的一个命令翻译工具。
linux中默认的是bash,可以通过下面命令查看
echo $SHELL
结果为
/bin/bash
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8NxpbqAu-1638712828613)(C:\Users\张增秀\AppData\Roaming\Typora\typora-user-images\1630670808554.png)]
shell的使用方式
手工方式:
? 手工敲击键盘,直接输入命令,按enter执行命令,显示命令执行的结果。
? 需要逐行输入命令,逐行确认执行。
脚本方式:
? 我们把手工执行的命令写到一个文件中,然后运行这个文件,达到执行命令的效果。该文件被称为脚本文件。
编写一个shell的步骤
新建一个文件,后缀名为.sh
touch a.sh
内容编写
echo "aaa"
执行
./a.sh
执行后提示不可执行,权限不够
通过查看权限命令查看
ls -al
显示权限为
-rw-rw-r--
因为,没有操作权限,需要对权限进行修改
chmod 777 a.sh
再次查看权限
ls -al
此时权限为
-rwxrwxrwx
此时执行命令,即可
./a.sh
shell注释
单行注释
多行注释
方式一:(推荐)
:<<!
多行注释
!
方式二:(必须以相同的字符开头和结尾)
:<<字符
多行注释内容
字符
举例:
:<<a
多行注释内容
a
注释示例:
#! /bin/bash
:<<!
echo "aaaaa"
!
echo "bbbbb"
shell变量
定义变量
普通变量
方式一:
变量名=变量值 变量值必须是一个整体,中间没有特殊字符 =前后不能加空格,=右边的值不能有特殊符号
示例:
#!/bin/bash
number=10
echo $number
方式二:’ '原样输出
变量名='变量值' 单引号中的内容,原样赋值
示例:
#!/bin/bash
number=10
echo $number
b='11'
echo $b
c='$number'
echo $c
方式三:""会将变量的值获取出来,进行赋值
变量名="变量值" 如果双引号里面有其他变量,会把变量的结果进行拼接,然后赋值
示例:
#!/bin/bash
number=10
echo $number
b='11'
echo $b
c='$number'
echo $c
d="12"
echo $d
e="$number"
echo $number
使用习惯:
如果要将数字赋值给变量,默认使用第一种方式。其他默认使用第三种方式。
命令变量
会将命令运行的结果赋值给左边的变量。
执行流程:1.执行$或者``里面的命令;2.然后将命令执行后的结果赋值给变量
方式一:
变量名=`命令`
示例:
f=`date`
echo $f
方式二:阅读性更高
变量名=$(命令)
示例:
f=`date`
echo $f
g=$(date)
echo $g
使用变量
方式一:非标准写法
$变量名
方式二:非标准写法
"$变量名"
方式三:在双引号里面使用变量的值
${变量名}
示例:
h="现在的时间为:${g}"
方式四:标准使用方式
"${变量名}"
示例:
h="现在的时间为:${g}"
echo "${h}"
只读变量
不可以被再次赋值,相当于是Java代码中final修饰的变量,只能被赋值一次。
格式:
readonly 变量名
示例:
h="现在的时间为:${g}"
echo "${h}"
readonly h
h="aaaa"
echo $h
报错:b.sh:行29: h: 只读变量
删除变量
格式:
unset 变量名
示例:
h="现在的时间为:${g}"
echo "${h}"
unset h
echo $h
打印结果为空
|