基本shell脚本的边界及变量

 shell脚本与变量

 shell脚本的用途:

  1. 自动化常用命令
  2. 执行系统管理和故障排除
  3. 创建简单的应用程序
  4. 处理文本或文件

 shell脚本编写格式:

  1. 第一行:shebang机制 用#加shell类型开头
  2. 后续可直接跟命令,用命令达到需要的效果即可
  3. 如需内容注释行首加#即可
    例如:

    #/bin/bash
    #test
    cat /etc/passwd
     shell脚本执行方法:

  4. bash /绝对路径
  5. 加入$PATH变量,给脚本文件添加执行权限,然后直接输入脚本文件名即可运行
  6. cat /脚本路径 | bash
     ;检查脚本语法是否错误的方法:
  7. bash -n 加脚本文件名: 检查语法是否错误,如有错则打印至终端
  8. bash -x 夹脚本文件名: 逐步运行脚本,如遇到错误则终止并报错

 shell变量:
变量是指用一个熟悉的,或者意义明显的单词、字节来给变量另起一个名字,达到每次使用变量名就可以是其本身作用发挥的功能

shell变量命名法则:

  1. 不能使用程序中的保留字 (内部命令)
  2. 只能使用数字、字母、下划线,且不能以数字开头
  3. 见名知意
  4. 统一命名规则:驼峰命名法

    命名建议: 1. 变量名大写
    1. 局部变量小写
    2. 函数名小写
    3. 用英文单体、体会实际作用

shell赋值 x=y

例如:

    [[email protected] ~]:NAME=`hostname`
    [[email protected] ~]:echo $NAME
    centos6.localdomain  

 hostname本身是一个命令,功能是可以打印出主机名,这里给hostname定了一个变量为NAME ,所以打印 $NAME 就可以直接显示出主机名了。
 这里注意因为hostname本身是一个命令,所以定变量的时候需要用``引起来,才能够辨别出命令。
 同样的方法也可以用变量来定义另外一个变量,这个时候就需要用""引起来,是可以辨别变量的,同时引号内需要加变量符号$ ""不加一般也可以,但是变量符$必须加上才能够辨别
 如果定义一个字符,本身字符就是一个变量或者命令,可以用‘‘引起来,不辩别任何变量和命令,和什么都不加效果一样
  以上为普通变量,不可传递给子进程
  另有环境变量以及位置变量、只读变量

  环境变量:可传递给子进程
环境变量赋值的两种简单方法 :

  [[email protected] ~]:export NAME=`hostname`
  [[email protected] ~]:declare -x NAME=`hostname`  

用nev命令或export可显示所有环境变量。

 环境变量一般主要用途在于,定义的环境变量可以在编辑文件、写脚本的界面也可以用

 只读变量:故名思意,只能声明及显示,不可修改和删除
只读变量赋值:

    readonly NAME=`hostname`
或  declare -r NAME=`hostname`  

readonly -p 命令可以显示所有定义了的只读变量

 位置变量:位置变量一般在一些shell脚本中使用 ,一般shell有自带只读变量$1,$2,$3··· $*,$#,$0

  $1 指脚本后跟的第一个参数、
  $2 指脚本后跟的第二个参数,以此类推
  $* 指脚本后跟的所有参数
  $# 指脚本后跟的参数个数
  $0 指脚本本身的绝对路径  

例如

 [[email protected] data] cat /data/shell.sh
        echo $1
 [[email protected] data] bash /data/shell.sh  centos6
  centos6

/data/shell.sh是一个脚本,功能是打印出$1,而$1是一个位置变量,表示脚本后跟的第一个参数centos6 ,所以脚本实现的功能就是打印centso6

 还有一些系统本身的特殊变量:

    $$             进程本身PID
    $PATHPID       进程本身PID
    $PPID          父进程PID
    $_             上一个命令的结果

以上普通变量、环境变量、只读变量赋值只本次登陆生效,如需永久生效需写入配置文件:
全局生效: /etc/profile
只对单个账户生效: ~/bash_profile

补充一些括号以及引号的用法:
‘‘ 单括号,最单纯的引号,不辩别命令,也不辩别变量
"" 双括号 稍微聪明一点 可以辨别变量,但不辩别命令
`` 反向单引号 ,最聪明的引号,可以辨别变量,也辨别命令
 引用命令也可以用$( )
( )中括号,可以在中括号内命名变量,然后跟子命令,只对括号内的子命令生效
{ }花括号,在花括号内命令变量,无需子命令,后续也继续生效

  至此

原文地址:https://blog.51cto.com/14322599/2405607

时间: 2024-07-30 06:40:29

基本shell脚本的边界及变量的相关文章

shell脚本中特定符合变量的含义

shell脚本中特定符合变量的含义: $#   传递到脚本的参数个数 $*    以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个 $$    脚本运行的当前进程PID号 $!     后台运行的最后一个进程的进程号 [email protected]   与$*相同,但是使用时用双引号,并将各个参数加双引号返回 $-     显示shell使用的当前选项,与set命令功能相同 $_    上一个命令的最后一个参数 $?     显示最后命令的退出状态,0表示执行成功

shell脚本解析3-----局部变量与函数

#!/bin/bash hello="var1" echo $hello function func1                             #定义函数func1 { local hello="var2"                    #定义内部变量hello echo $hello } func1                                          #进行函数调用 echo $hello 执行结果: 总结:局

Shell脚本基础、使用变量、条件测试及选择、列表式循环

Shell语言 脚本:可以运行,一个文件,可以实现某种功能(命令的堆积) [[email protected] ~]# vim /root/stu.sh echo hello worldcat /etc/redhat-releaseuname -rhostname ifconfig | head -2 [[email protected] ~]# chmod +x /root/stu.sh [[email protected] ~]# /root/stu.sh 案例1:书写一个创建用户的脚本 [

linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)

Shell 脚本基础 1.变量 什么是变量 #a=1 # echo $a 1 变量:可以变化的量 1.2变量名称注意事项 变量名不能以数字开头 不能与系统中已有的环境变量重名,尽量不要全部使用大写,尽量不要使用"_"下划线开头 最好做到见名知意 不能使用程序中的保留字,列如if,for等 1.3变量类型 字符型 数值型 整型浮点型 布尔型 条件是和否 #$echo $a 引用 abc 撤销 unset +(变量名)a 1.4变量操作 * 设置变量 * 引用变量 * 撤销变量 单引号和双

Shell 脚本之编程和变量(外加实战项目)

本章目的:学会编程规范,变量的相关脚本操作和知识 一.Shell 脚本的概述 二.Shell的作用 三.写第一个Shell脚本 1.写一个脚本(到BOOT目录,查看当前位置,以长格式友好显示VML开头的所有文件) [[email protected] ~]# vim aaa.sh "随意编一个空文件以.sh为结尾" /bin/bash "开头声明,固定格式" 一个脚本 "描述性信息可加可不加" cd /boot/ pwd ls -lh vml*

Shell脚本编程规范与变量

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

shell脚本的使用---特殊变量及脚本的综合使用

特殊的变量及脚本的综合使用 一.环境变量: env ##查看所有的环境变量 echo -e "1\n2"  ##换行显示 echo -e "1\t2"  ##在1和2之间加入tab显示 echo -e "\033[44;37;5m ME\033[0m COOL" ##有颜色显示,"\033["是终端转义字符开始 echo -e "$PAHT\n $SHELL\n $HOSTNAME\n $MAIL\n $HISTSI

记录shell脚本中的特殊变量

1.特殊的位置变量 关于上面的相关变量介绍,也可以参考man手册,执行命令"man bash",然后搜索关键字"Special Parameters"即可看到相关变量的解释. 2.bash shell内置的变量命令 bash Shell包含一些内置命令.这些内置命令在目录列表里是看不见的,它们由Shell本身提供.常用的内部命令有:echo.eval.exec.export.read.shift. (1)echo--在屏幕上输出信息常用参数如下: (2)export

shell脚本中定义路径变量出现的BUG

=========================================================================== if 语句中的定义路径变量 引发命令的PATH路径改变出现的bug 问题 原脚本文件:inotify +rsync 实时共享 #!/bin/bash PATH=/data/ IP=172.16.1.41 cd $PATH &&\ 切换到一个新的变量中了 /usr/bin/inotifywait -mrq --format '%w%f' -e