shell程序设计的语法 --

自己最近研究了一下shell程序设计,我将对它的理解分享给大家.

    shell变量的特点:
    shell变量使用之前不需要事先对它进行声明,在第一次使用它的时侯创建它。
    shell变量默认情况下,它是作为保存字符串的。即使它被赋予数值也是保存为字符串,shell和其它工具程序会把“数值”字符串转换成正确方式进行操作。
    shell变量对大小写 敏感 ,即区分大小。
    变量的使用:
    使用$加变量名来获取变量的内容,如$var
    使用echo命令来显示变量的内容,如echo $var
    使用read命令来为变量名输入数据,如read var
    变量的赋值:
    var=myname 这时var的值是myname
    var=“myname” 这时var的值是myname
    var=‘myname’ 这时var的值是myname
    var=6+1 这时var的值是6+1
    注意在赋值的时侯等号的两边不能有空格,要紧挨着。否则,shell会把它看作是命令而不变量。如var =6+1,shell把它看作是var命令,=6+1是var命令的参数。
    双引号使用:
    在双引号中使用$var会进行名-值的转换。如果要将$var原样输出时,可以用‘/‘将$作为一普通字符,如/$var。同样,要在双引号内使用双引号,也可以这样做,如/”。注意”$var1234”的情况。
    单引号使用:
    在单引号中使用$var不会进行名-值的转换。同样,要在单引号中使用单引号也可以使用’/’,如/’。
    环境变量:在shell脚本程序开始执行的时侯,某些变量会根据当前环境中的值进行初始化。通常这些变量的变量名为大写,为了以用户程序相区别。
    环境变量
    说明

    $HOME 当前用户登录的子目录

    $PATH 以冒号分隔的用来搜索命令子目录清单

    $PS1 命令提示符,通常是’$’字符

    $PS2 辅助提示符,用来提示后续输入,通常是‘>’字符

    $IFS 输入区的分隔符

    $0 shell脚本程序的名字

    $# 传递到脚本程序的参数的个数

    $$ 脚本程序的进程ID

    参数变量:在shell脚本程序调用的时侯,还带有一些参数,这时就会产生一些额外变量,这些变量就是参数变量。
    参数变量
    说明

    $1,$2,… 参数1,参数2,…

    $* 一个全体参数组成的清单,这是一个独立的变量,各参数之间用环境变量IFS中的第一个字符分隔开。

    $@ “$*”的一种变量,它不使用IFS环境变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一份可能的Shell程序设计实验报告的模板,供参考: # 实验名称:Shell程序设计 ## 实验目的 本实验旨在让学生熟悉Shell编程语言的基本语法和常用命令,掌握Shell脚本程序的编写和执行方法,以及实现一些常见的系统管理和自动化任务。 ## 实验环境 - 操作系统:Linux(Ubuntu或CentOS) - Shell版本:Bash - 编辑器:Vim或Nano ## 实验内容 ### 实验1:编写Hello World脚本 在终端创建一个名为hello.sh的脚本文件,其包含以下内容: ```bash #!/bin/bash echo "Hello World!" ``` 保存并退出编辑器后,执行以下命令: ```bash chmod +x hello.sh ./hello.sh ``` 程序将输出“Hello World!”的字符串。 ### 实验2:实现文件备份脚本 创建一个名为backup.sh的脚本文件,其功能为将指定目录下的文件备份到另一个目录,并且只备份最近7天内修改过的文件。 ```bash #!/bin/bash src_dir="/path/to/source/dir" dest_dir="/path/to/backup/dir" days=7 find "$src_dir" -mtime -$days -type f -exec cp {} "$dest_dir" \; ``` 在脚本,我们使用find命令查找指定目录下在最近7天内被修改过的文件,并将其复制到备份目录。 ### 实验3:实现自动化部署脚本 创建一个名为deploy.sh的脚本文件,其功能为自动从Git仓库拉取最新代码,并将其部署到指定的服务器上。 ```bash #!/bin/bash git pull origin master rsync -avz --exclude=".git" /path/to/source/dir user@server:/path/to/destination/dir ssh user@server "systemctl restart myapp.service" ``` 在脚本,我们使用git命令从Git仓库拉取最新代码,然后使用rsync命令将代码同步到指定的服务器上,并使用ssh命令登录到服务器上执行重启操作。 ## 实验总结 本次实验让我们学会了如何使用Shell编程语言编写脚本程序,掌握了一些常用的命令和工具,在实现文件备份、自动化部署等方面具有了一定的实践经验。同时,我们也发现Shell程序设计可以帮助我们提高工作效率,减少重复性工作,进一步提高了我们对Linux系统的理解和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值