shell脚本学习第二天——变量定义(含字符串变量定义)
来源:互联网 发布:win32api python 编辑:程序博客网 时间:2024/04/29 14:17
一、脚本书写规范
脚本打头指明解释器,以及作者,联系方式,以及脚本功能等等。
#!/bin/bash#Author:yangni#Mail:497049229@qq.com#Func:This is ......
循环语句的书写规范:
习惯写法:先函数写出结构,再填充内容
if [ xxx ] #这里[ ]前后都需要有空格,然后在中间填值 then fi
所以在脚本书写的时候遇到[]最好先在里面打两个空格,然后在中间写。对于这种循环,首先写好整个循环体,然后再写具体内容,防止出现遗漏情况。
二、变量:
全局变量:环境变量(在shell及其派生子shell中都可以使用)
局部变量:只能在脚本中或者函数中使用。
环境变量:一般为大写,且都是全局变量,用于定义Shell运行环境,保证Shell命令正确执行。
- 环境变量可以在命令行设置,但是退出用户后值会丢失,因此最好在用户home目录下.bash_profile文件中或者全局配置/etc/profile文件或者/etc/profile.d中定义,这样每次登陆就可以自动初始化了。
环境变量在用户登陆之前已经被/bin/login程序设置好,通常定义并保存在.bash_profile
1、定义变量的几种方法:
在/etc/profile最后添加变量定义:
方法一:
export yangni=”i am yangni”
方法二:
- 变量名=value;
- export 变量名(需要用export导出)
可以同时导出多个变量:
export 变量1 变量2 变量3
方法三:
declare -x 变量名=value
2、字符串变量:
普通字符串变量定义的几种常见形式:
- 变量名=value
- 变量名=’value’
- 变量名=”value”
一般是字母、数字、下划线,最好字母打头。
实例:
a=192.168.1.2 //直接定义变量内容b='192.168.1.2' //输出时候单引号变量不解析(看到啥显示啥)c="192.168.1.2" //输出时会解析变量
我们会看到打印的结果都是一样的。
稍微做下改动:
a=192.168.1.2-$ab='192.168.1.2-$a' //单引号里面不解析变量c="192.168.1.2-$a" //双引号解析变量(a的值已经变化了)
我们会发现,单引号里面的
再举一个简单的实例:
echo ‘`date`’
echo “`date`”
所以一般来说,数字不加引号,其他加双引号。
但是在awk函数双引号和单引号使用正好相反。
3、命令变量的定义:
命令变量定义常见两种方法:
1、mydate=`date +%F` #注意,只有date后有空格2、mydate=$(date +%F)echo $mydate
然后我们可以用当前时间变量来打包文件:
tar zcf myworkspace${mydate}_yangni.tar.gz workspace/
这种情况需要加大括号{},因为这里$无法确定是mydate变量还是
mydate_yangni变量
用机器名打包文件:
>myhostname=$(uname -n) //等号前面不能有空格tar zcf $myhostname.tar.gz 目录名
如果是字符串变量,最好加双引号防止可能出现的错误:
“$A” 或者”${A}”
- shell脚本学习第二天——变量定义(含字符串变量定义)
- 【Shell脚本学习6】Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
- shell脚本之定义变量
- [shell]定义变量
- Oracle脚本定义变量
- (shell笔记六)Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
- shell脚本——字符串变量
- shell脚本的作用,shell脚本变量的定义和三种赋值方式【shell脚本的学习笔记一】
- tensorflow学习——parser变量定义
- shell脚本学习第四天——bash内部变量,变量主串,变量替换
- shell 入门(1) 变量定义
- shell脚本学习2——变量
- shell脚本里函数定义和变量使用
- Shell脚本定义变量和环境变量的引用
- tensorflow学习:定义变量
- vim脚本——格式化变量定义代码
- shell 中变量的定义
- shell 中变量的定义
- JAVA 类的初始化
- uboot启动代码分析
- PHP调试之Xdebug
- 康拓展开
- 手把手教你如何加入到github的开源世界
- shell脚本学习第二天——变量定义(含字符串变量定义)
- TCP/IP、Http、Socket、XMPP-从入门到深入
- do..while的作用
- [AHK]为某个脚本增加开关,控制其它脚本
- Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册
- Struts2笔记16 文件上传
- androidStudio项目开发问题汇总
- unity第三人称视角分析
- 我的三观概述