shell 脚本的开头:
#!/bin/bash
变量:
变量名=变量值(等号两边一定没有空格)
不能以数字开头,由字母、数字、下划线组成
输出变量的内容:
echo
echo 变量名 --》 输出变量名
echo $变量名 --》 输出变量值
1 name=jim 2 echo name --> name 3 echo $name --> jim
变量的释放:
unset name echo $name ---> 不会输出内容,已经定义的name 已经被释放
特殊变量:(带空格)
name="j im" echo $name -> j im
双引号和单引号的区别:
name1="jim" name2="xiaohua" love="$name1 love $name2" echo love ==> jim love xiaohua age1=‘11‘ age2=‘22‘ n=‘$age1 $age2‘ echo n ==> $age1 $age2
实现 赋 值 系统命令:
unset m m=`ls` echo $m ==> 公共 模板 视频 图片 文档 下载 音乐 桌面
练习:输入当前的目录
#!/bin/bash dir=`dir` echo $dir
执行脚本:(./脚本名 如果提示权限不够,chmod +x 脚本名 或者 sh 脚本名)
练习:计算/etc目录下有多少个目录
#!/bin/bash cd /etc #先切换到想到计算的目录路径 filenumber=`ls -l | wc -l` echo "该目录下总共有$filenumber个文件"
↑:改进,可以从用户输入的目录查看
read -p “提示用户信息” 变量名
#!/bin/bash read -p "请输入想查询的路径:" dir cd $dir filenumber=`ls -l | wc -l` echo "该目录下总共有$filenumber"个文件
文件接收参数的方式:
$0:代表文件名
$1:表示传入的第一个参数
$2:表示传入的第二个参数
$n:表示传入的第n个参数
$@:显示全部参数
$#:显示参数的个数
重定向
把内容输出到文件中:
ls 1>a.txt (覆盖)
ls 1>> a.txt(追加)
错误命令的输出结果:
覆盖:
追加: