shell脚本初学者注意点

hykeda9年前服务器1030
我是shell脚本初学者,在试着写脚本的时候各种不适应。出现摸不着头脑的错误。现在写一些小经验: 首先shell脚本中不要出现空行,不然终端会提示: command not found 使用sh -x  xxx.sh 可以调试脚本,如果脚本中出现\r等莫名其妙的东西,说明你的脚本是在dos下面编写的,比如你在windows下面的文本文档编写的,这样会导致shell脚本警告,甚至出错。 你可以使用vi打开脚本,按esc键,输入:set ff=unix  :wq 处理下文件,这样就保存成立unix文档格式。 很多报错都是出现在这个问题上,而且很难发现和修改!!!! 1: 定义变量时, =号的两边不可以留空格.  这里不能添加的原因是 添加了空格一般是用来表示判断的 eg: gender=femal------------right gender =femal-----------wrong gender= femal-----------wrong 2 条件测试语句 [ 符号的两边都要留空格 . //这条真的比较膈应人 eg: if [ $gender = femal ]; then-------right. echo "you are femal"; fi if[ $gender...-----------------------wrong if [$gender...----------------------wrong. 3 条件测试的内容,如果是字符串比较的话, 比较符号两边要留空格! eg: if [ $gender = femal ]; then-------right. if [ $gender= femal ]; then--------wrong. if [ $gender=femal ]; then---------wrong. 4 如果if 和 then写在同一行, 那么,注意, then的前面要跟上 ; 号. 如果 then 换行写, 那么也没问题. eg: if [ $gender = femal ]; then-------right. if [ $gender = femal ] then-------------------------------right. if [ $gender = femal ] then-------wrong. then前面少了 ; 号. 提示出错信息: syntax error near unexpected token then   这就话出错还可能是由于第二条 "[" 左右都要有空格造成的 同理,还有很多出错信息 比如 syntax error near unexpected token fi 等都是这样引起的。还有就是不是unix文档格式 5 if 后面一定要跟上 then. 同理 elif 后面一定要跟上 then. 不然提示出错信息: syntax error near unexpected token else 1)if 语句后面需要跟着then,同时前面要有分号; 2) 空格非常重要,shell 会认为空格前的为一个命令,如果a=3 认为是赋值操作,如果写成a = 3,那么就会认为a为一个命令 this=`ls -l |grep '^-' |  wc -l ` 3) 操作符之间要用空格分开 ,如 test ! -d $1,其中的!和-d就要用空格分开 空格是命令解析中的重要分隔符  
标签: shellliunx

相关文章

Linux 挂载硬盘

检查目前硬盘状态:fdisk -l 关机并插入新硬盘 对新硬盘分区:fdisk /dev/sdb (假设新硬盘为sdb) m    显示命令菜单 d    删除一个分区 n    创...

 Nginx 基础知识

Nginx 基础知识

早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,...

FlashFXP(FTP)计划任务

设规则: 属性-文件传输规则-全局 如果 时间 为 较旧 并且 传输 为 下载 那么 覆盖 如果 大小 为 不同 并且 传输 为 下载 那么 覆盖 如果没有匹配的规则,那么:跳过 建站点...

git抓去远程仓库报错can’t be established.

个人在码云(git一样)上面创建了仓库,通过本地的git拉取远程仓库到本地报错 The authenticity of host ‘github.com (13.229.188.59)’ can’t...

SSH (CentOS)常用命令集合

SSH (CentOS)常用命令集合

SSH (CentOS) 系统 功能 命令 --help 示例 关机 halt halt 重启 reboot rebo...

linux添加开机启动

Linux设置服务开机自动启动的方式有好多种,这里介绍一下通过chkconfig命令添加脚本为开机自动启动的方法。 1. 编写脚本autostart.sh(这里以开机启动redis服务为...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。