shell脚本空格规范

练习,写一个脚本:

传递一个用户名参数给脚本,判断此用户的用户名跟其基本组的组名是否一致,并将结果显示出来

#!/bin/bash

#

if  ! id $1 &>/dev/null;then

echo "No such user !"

exit 10

fi

if [`id -n -u $1` == `id -n -g $1` ];then

#if [ $1 == `id -n -g $1` ];then

echo "User group same!"

else

echo "User group  difference!"

fi

注意 开头为 “if”的行,[  与  `之间要有空格,如果没有,运行时会有以下提示

[[email protected] ~]# ./ugsame.sh  test002

./ugsame.sh:行3: [test002: 未找到命令

User group  diffrence!

加了空格后,如

if [ `id -n -u $1` == `id -n -g $1` ];then

就可以正常运行,运行结果如下

[[email protected] ~]# ./ugsame.sh  test002

User group same!

时间: 2024-11-06 13:21:27

shell脚本空格规范的相关文章

Shell脚本编程规范与变量

主要内容 Shell脚本编程规范 Shell脚本应用场景 Shell编程规范 管道与重定向 Shell脚本变量 自定义变量 特殊变量 Shell脚本概述 Shell脚本的概念 将要执行的命令按顺序保存到一个文本文件 给该文件可执行权限,便可运行 可结合各种Shell控制语句以完成更复杂的操作 Shell脚本应用场景 重复性操作 批量事务处理 自动化运维 服务运行状态监控 定时任务执行 编写第一个Shell脚本 1.编写脚本代码 使用vim文本编辑器,每行一条Linux命令, 按执行顺序依次编写:

Shell脚本开发规范

1)开头指定脚本解释器 #!/bin/sh ;#!/bin/bash 2)开头加版本及版权信息 3)脚本中不用中文注释 4)文件以.sh扩展名保存 5)成对的内容一次性写全,防止泄露 6)[ ]中括号两端要有空格 7)流程控制语句一次性写完,再添加语句 提示:你检查脚本明明没有问题,但是就是执行出现莫名其妙的错误,要想到执行dos2unix命令 好习惯:每次执行脚本都dos2unix下 shell调试脚本方法: 1)shell调试之echo关键命令 2)shell调试之bash参数 sh -n

编写Shell脚本的最佳实践,规范二

需要养成的习惯如下: 代码有注释 #!/bin/bash # Written by steven # Name: mysqldump.sh # Version: v1.0 # Parameters : 无 # Function: mysqldump备份mysql # Create Date: 2016-08-27 缩进有规矩 编码要统一 在写脚本的时候尽量使用UTF-8编码 太长要分行 巧用heredocs 学会查路径 script_dir=$(cd $(dirname $0) && pw

Linux系统Shell脚本编程

1. shell脚本概念:C语言编写的.命令解释器.编程语言. 是用户使用linux的桥梁. shell脚本语言非常擅长处理文本类型的数据. 2. shell脚本作用:自动化管理.监控管理.日志数据处理.自动数据备份. 3. shell脚本中的成分:注释.命令.shell变量.结构控制语句. 以行为单位  一行一行依次执行. (在shell脚本中可以出现任何在交互方式下可以使用的命令.) 4. 调用shell脚本的两种方式: (1)sh 脚本文件名 (2)./脚本文件名(需要有执行权限) 当执行

编写Shell脚本的最佳实践

前言 由于工作需要,最近重新开始拾掇shell脚本.虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看.而且当我在看其他人写的脚本的时候,总觉得难以阅读.毕竟shell脚本这个东西不算是正经的编程语言,他更像是一个工具,用来杂糅不同的程序供我们调用.因此很多人在写的时候也是想到哪里写到哪里,基本上都像是一段超长的main函数,不忍直视.同时,由于历史原因,shell有很多不同的版本,而且也有很多有相同功能的命令需要我们进行取舍,以至于代码的规范很难统一. 考虑到上面的这些原

shell脚本基础的简单介绍与简单应用

Shell脚本是Linux中很重要的一种"程序". 什么shell脚本? shell脚本是提前设计的可执行语句,用来完成特定任务的文件. Shell脚本可分为交互式和非交互式 交互式:指脚本在运行时,需要一些人为的参与,比如,键盘输入数据,确认选项等.因为有人为的参与,所以运行时更加智能化,但是同时效率会降低 非交互式:指脚本运行时不需要人为干预,批量执行,效率高,但提高智能化难度大 2  shell脚本的规范格式 #!环境申明 # 注释文本 可执行代码 以上就是shell脚本的规范格

01 Shell脚本编程入门知识

Linux Shell语言使用背景  目前全球正处于“互联网+”的时代,各行各业都与互联网挂钩,比如互联网+教育.互联网+销售等等.几乎所有的商品.服务网上都能找得到,而支撑互联网的幕后支柱就是Linux系统.Linux运维技术成为IT技术人员的必备技能.  想要降低Linux运维成本就要进行运维自动化,进行自动化就需要脚本语言.时下Linux系统最流行的脚本语言就是Shell和Python.Python的流行时间短,学习成本高.而Shell几乎是所有运维公司都必须使用的自动化语言,在很多工作环

模块一:shell 脚本基础

一.shell脚本介绍 (一)脚本案例及介绍: #!/bin/bash LOG_DIR=/var/log ROOT_UID=0 if ["$UID -ne "$ROOT_UID"] then echo "must be root run this script." exit 1 fi cd $ LOG_DIR || { echo "cannot change to necessary directory" exit 1 } cat /d

Shell脚本的书写规范与优秀的开发习惯

<--目录-->1)脚本模块名2)代码框架3)函数规范4)脚本存放规范5)补充规范19条6)优秀的开发习惯 [脚本模块名]1.常规Shell脚本使用统一后辍:.sh,例:wsyht.sh2.模块的启动和停止脚本统一命名为start_{模块名}.sh和sop_{模块名}.sh3.监控脚本可以*_mon.sh为后辍,控制脚本以*_ctl.sh为后辍4.模块(及其脚本和二进制程序)命名应该代表其特性和功能,不要使用个人名字缩写等形式命名5.模块中的脚本和二进制程序命名禁止和其它脚本和二进制程序重名