什么是shell
在linux内核基础上面向用户表现的形式,shell是一个交互性的命令解释器:读入并且解释用户输入的命令的程序
开始
#!/bin/bash
echo -e -n "hello world\n请输入用户名:" //参数-e和-n分别是启用反斜线控制符和不换行
read name //从键盘读入,保存于name的变量中
echo "欢迎$name!回来" //将name的内容和echo的内容一起显示出来
- 注意,shell脚本文件需要可执行权限才能运行
$ chmod u+x 文件 #给予可执行权限
$ ./文件 #执行shell文件,这里使用系统模式的shell程序运行
或
$ sh 文件 #和上面一样,这只是指定使用shell来运行脚本
shell运行和系统的shell环境有关,使用echo $PATH
来查看环境变量的shell解释器路径在哪里
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:./node_modules/.bin
可见,输出的系统shell解释器变量路径,以:
分割。
除了前面两个运行shell脚本的方式,还有:
$ bash 文件 #这不需要在脚本中定义解释器目录,使用bash为解释器,并且还能携带参数等待(这是和上面使用sh是一样的原理)
$ bash < 文件 #使用输入定向,让脚本里的内容输入到bash命令中,但是不能使用参数
基础
通配符
符号 | 含义 |
---|---|
* | 匹配任意的字符,可多次 |
? | 匹配任意当个字符 |
[ ] | 匹配字符组限定的任意一个字符 |
[^]或[!] | 匹配不在该字符组的任意一个字符 |
{string1,string2,……} | 匹配其中一个指定的字符串 |
例子:
$ ls file * #匹配任意的字符为file开头的文件
$ ls d? #匹配d开头,文件名只有两个字符的文件
$ ls space.[co] #匹配space.c或space.o
$ ls space.[1-9] #可用-来指定范围,匹配space.1、space.2、...、space.9
$ ls [!H] * #匹配非H开头的文件
$ ls /home/{user,ubuntu} #匹配/home/user和/home/ubuntu目录(当存在时)
评论内容审核后显示,评论后刷新页面您刚刚评论的内容可能会隐藏哦,不必重复评论 😁