ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Shell编程基础

2022-04-14 20:04:54  阅读:217  来源: 互联网

标签:shell 变量 编程 基础 sh Shell 环境变量 bash


Shell脚本

命令、变量和流程控制语句等有机的结合起来

     shell脚本擅长处理纯文本类型的数据,而linux中,几乎所有的配置文件,日志,都是纯文本类型文件

默认shell与版本

常用操作系统的默认shell

1.Linux是Bourne Again shell(bash)

2.Solaris和FreeBSD缺省的是Bourne shell(sh)

3.AIX下是Korn Shell(ksh)

4.HP-UX缺省的是POSIX shell(sh)

升级shell
yum install update bash

sh与bash;/bin与/usr/bin

脚本书写规范

#1.脚本统一存放目录

#2.选择解释器
#!/bin/bash
#!/bin/sh

#3.文件名规范
名字要有意义,并且结尾以 .sh 结束

#4.开发的规范和习惯小结

  1. 放在统一的目录

  2. 脚本以.sh为扩展名

  3. 开头指定脚本解释器。

  4. 开头加版本版权等信息,可配置~/.vimrc文件自动添加。

  5. 脚本不要用中文注释,尽量用英文注释。【目前还做不到,学习中CS英语中

  6. 代码书写优秀习惯

    a、成对的内容一次性写出来,防止遗漏,如[ ]、' '、" "等

    b、[ ]两端要有空格,先输入[ ],退格,输入2个空格,再退格写。

    c、流程控制语句一次书写完,再添加内容。(if 条件 ; then 内容;fi)ddd

    d、通过缩进让代码易读。

    f、脚本中的引号都是英文状态下的引号,其他字符也是英文状态。


shell脚本的执行

sh test.sh
source test.sh
./test.sh


Shell的变量

变量可以分为两类:环境变量(全局变量)和普通变量(局部变量)

环境变量也可称为全局变量,可以在创建他们的Shell及其派生出来的任意子进程shell中使用,环境变量又可分为自定义环境变量和Bash内置的环境变量
普通变量也可称为局部变量,只能在创建他们的Shell函数或Shell脚本中使用。普通变量一般是由开发者用户开发脚本程序时创建的。
特殊变量

#1.环境变量


#2.普通变量

本地变量在用户当前的Shell生存期的脚本中使用。值在用户当前Shell生存期中有意义,在Shell中启动另一个进程或退出,本地变量值将无效。

export命令
当前shell窗口及子shell窗口生效
在新开的shell窗口不会生效,生效需要写入配置文件


#3.环境变量相关配置文件

/etc/proflie
/etc/bashrc

~/.bashrc
~/.bash_profile

/etc/proflie.d/ # 目录

读取顺序
① /etc/profile
② ~/.bash_profile
③ ~/.bashrc
④ /etc/bashrc


#4.环境变量的知识小结

变量名通常要大写。
变量可以在自身的Shell及子Shell中使用。
常用export来定义环境变量。

执行env默认可以显示所有的环境变量名称及对应的值。
输出时用“$变量名”,取消时用“unset变量名”。

书写crond定时任务时要注意,脚本要用到的环境变量最好先在所执行的Shell脚本中重新定义。
如果希望环境变量永久生效,则可以将其放在用户环境变量文件或全局环境变量文件里。

#5.变量中引号的使用

只有在变量的值中有空格的时候,会使用引号。
单引号与双引号的区别在于,是否能够解析特殊符号。



1)内容是纯数字、简单的连续字符(内容中不带任何空格)时,定义时可以不加任何引号
2)没有特殊情况时,字符串一律用双引号定义赋值,特别是多个字符串中间有空格时
3)当变量里的内容需要原样输出时,要用单引号

#6.定义变量名技巧

1. 变量名只能为字母、数字或下划线,只能以字母或下划线开头。

2. 变量名的定义要有一定的规范,并且要见名知意。

3. 一般的变量定义、赋值常用双引号;简单连续的字符串可以不加引号;希望原样输出时使用单引号。

4. 希望变量的内容是命令的解析结果时,要用反引号'',或者用$()把命令括起来再赋值。

#7.特殊变量

常用的特殊位置参数说明

#!/bin/bash

echo $0
echo "第一个参数:" $1
echo "第二个参数:" $2
echo "第11个参数:" ${11}

#!/bin/bash

echo "参数个数:" $#
echo "参数:" $*


#8.进程状态变量


#9.echo参数说明


定义变量的方式

1、直接赋值

2、传参 (传递参数)

3、交互式设置变量,使用read命令

#1.read命令说明

在命令行中使用

在脚本中使用

#!/bin/bash
read -p '请输入:' test

echo $test


#2.定义方法实践

标签:shell,变量,编程,基础,sh,Shell,环境变量,bash
来源: https://www.cnblogs.com/yachengmuCC/p/16123971.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有