shell脚本基础
? 查看一下系统支持的shell 两种查看方式 ?# chsh -l # cat /etc/shells? 打印当前的shell——ID # echo $$ 打印子shell——ID 本地变量 取消变量 # unset aa ? 环境变量 环境变量可影响子shell 定义环境变量 ? 查看UID、GID 打印path,每个路径都是以冒号隔开。 ? su加“-”和不加“-”涉及到家目录和环境变量的问题。加“-”有环境变量。 ?不加“-” $ su root 加“-” $ su - root ? ? Linux环境配置文件---------.bashrc文件 .bashrc文件主要保存个人的一些个性化设置,如命令别名、路径等。也即在同一个服务器上,只对某个用户的个性化设置相关。它是一个隐藏文件,需要使用ls -a来查看。 修改“.bashrc”对当前用户生效 # vi .bashrc 修改“/etc/bashrc”对所有用户生效 # vi /etc/bashrc? 我们敲命令的时候,是需要写这个命令的路径的 如果你没有写路径的话,则会到默认指定的路径里去找 当你登录终端的时候,系统会自动的执行家目录下面的一些隐藏文件.bashxxxx ? ? ? 写、执行脚本的简单举例 ?# vi aa.sh 加上可执行权限 ?# chmod +x aa.sh 执行脚本 # ./aa.sh ? ? 位置变量
?set设置变量 # set a b c d e f g h i j k l m n ? ? basename和dirname的区别 ? 一个命令中牵扯到另一个命令,另一个命令需要加反引号esc(退出键)下面那个按键``
? ? echo中的双引号 注意{}和反斜杠
? echo中的单引号
? $#和$* $#判断有多少个参数 $*判断有哪些参数 if条件语句,条件成立,则执行then后面的内容? if [ 条件 ]? ? ;? ? ? then? ? ? 查看脚本行号 ? ? 当我们执行完一个命令之后,这个命令的结果会放在一个地方? $? 正确? ?为0 错误? 为非零 ? 2、返回值 利用返回值判断用户是否是否存在 ? ? 3、对比 ? 进入手册查看 # man test ? 数值对比: -eq(等于)equal -gt(大于)greater than -ge(大于等于)greater equal -lt(小于)less than -le(小于等于)less equal -ne(不等于)not equal ? 条件表达式: 【】 、【【】】? ? ?注:前后要有空格 test? ? ? ? ? ? ? ? ? 注:加测试表达式 ? 字符对比 ==(等于) !=(不等于) 【】和【【】】的区别 [ $name == tom ]------------?为通配符 判断是否为纯数字 # [[ $aa =~ ^[0-9]+$ ]] 判断是否具有某个属性 -r? ? ? 测试当前用户是否有权限读取(Read) -w? ? 测试当前用户是否有权限写入(Write) -x? ? ?测试当前用户是否有权限执行(eXcute) -d? ? ?测试是否为目录(Directory)或目录是否存在 -e? ? ?测试目录或文件是否存在(Exist) -f? ? ?测试是否为文件(File)或文件是否存在 ? ? ? !-----------------取反 连接符: &&(and)全真为真,一假全假 ||(or) 例:一假全假 ? 例:全真为真 &&按顺序执行 直到遇到假,执行结束 ||(or)一真全真 ||(or)全假为假 ?||按顺序执行 直到遇到真,执行结束 ? $[]、$(())、expr、let、declare都不能用小数 $[]和$(())用法相同 expr只能做加减运算
let ? let连加
加号写在后面bb=aa++(先把aa的值,赋值给bb)后加先赋值
加号写在前面bb=++aa(aa先加1再赋值给bb)先加后赋值
? ? declare定义成整形 ? bc(计算器) scale小数点后几位 ? 如果某个命令需要和用户交互,那么你可以通过echo的方式把要输入的值通过管道发给这个命令。 ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |