对于一个shell脚本来说,第一行是 "#!/bin/bash",这条命令中的 "#!" 告诉系统该用哪一款解释器来对该脚本进行解释,后面的"/bin/bash"用来指定解释器的具体路径
 
第一个shell脚本
>>
#!/bin/bash
echo "What is your name?" # 除了第一行的#符号,其他行的#号表示注释
read PERSON # read用来从标准输入输出文件进行读取用户输入
echo "Hello, $PERSON!" # 变量前面需要加上$符号
<<
 
执行bash文件:
在Linux下,首先给文件可执行权限chmod +x ./filename.sh,然后直接执行./filename.sh
在Mac下,直接使用bash ./filename.sh即可
 
如果不想更改文件的权限,也可以直接通过点号"."执行。
例如:. filename.sh
还可以通过source命令执行脚本
例如:source filename.sh
 
shell的变量
 
在Bash shell中,每一个变量的值都是字符串,无论在给变量赋值的时候是否使用引号,值都会以字符串的形式存储。
 
>>
variable=value
variable='value'
variable="value"
<<
如果value中不包含任何空白,那么可以不带引号。否则,必须使用引号。单双引号是有区别的。
Tip:赋值号的左右两端一定不能有空格!!
 
#!/bin/bash
name='默存'
echo ${name}
echo "${name} 是个好同志!"

最好在变量周围加上花括号,这是一个好习惯。

 
单双引号的区别
#!/bin/bash
name="默存"
name1='真${name}'
name2="假${name}"
echo ${name1}
echo ${name2}
输出
>>

真${name}

假默存

<<
带上单引号,不管是不是变量都会原样输出。双引号可以将变量进行解析。
 
将命令返回的结果赋值给变量
有两种方式可以将命令返回的结果给变量赋值,分别是使用$(命令语句)或者``。如下例:
#!/bin/bash
bash_code=$(cat first.sh)
echo ${bash_code}
bash_code2=`cat first.sh`
echo ${bash_code2}

可以将first.sh中的内容返回。

 
只读变量
>> readonly variable_name
 
删除变量
>> unset variable_name
 

Shell基础知识(二)的更多相关文章

  1. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

  2. java 基础知识二 基本类型与运算符

    java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...

  3. 菜鸟脱壳之脱壳的基础知识(二) ——DUMP的原理

    菜鸟脱壳之脱壳的基础知识(二)——DUMP的原理当外壳的执行完毕后,会跳到原来的程序的入口点,即Entry Point,也可以称作OEP!当一般加密强度不是很大的壳,会在壳的末尾有一个大的跨段,跳向O ...

  4. Dapper基础知识二

    在下刚毕业工作,之前实习有用到Dapper?这几天新项目想用上Dapper,在下比较菜鸟,这块只是个人对Dapper的一种总结. 2,如何使用Dapper?     首先Dapper是支持多种数据库的 ...

  5. Linux Shell 基础知识(一)

    1. 本文知识结构 2. shell 基础知识 2.1 shell 简单介绍 ​ GNU bash shell 能提供对 Linux 系统的交互式访问,一般来说,使用快捷键 Ctrl + Alt + ...

  6. python基础知识(二)

    python基础知识(二) 字符串格式化 ​ 格式: % 类型 ---- > ' %类型 ' %(数据) %s 字符串 ​ print(' %s is boy'%('tom')) ----> ...

  7. 运维 04 Shell基础命令(二)

    Shell基础命令(二)   查看Linux的发行版 cat /etc/redhat-release cat /etc/os-release 查看系统用户的id信息 id 用户名 id root id ...

  8. Shell 基础知识和总结

    调试脚本 检查脚本语法错误 bash -n /path/to/some_script 调试执行 bash -x /path/to/some_script shell里的变量 本地变量:只对当前shel ...

  9. shell基础知识---与监听服务器长连接端口状态

    从未写过脚本我的最近接了俩脚本的需求,就在这分享一下我的我学到基础知识主要就四部分内容 一.变量 变量的定义 string='字符串' string="字符串" num=808st ...

  10. Java基础知识二次学习--第三章 面向对象

    第三章 面向对象   时间:2017年4月24日17:51:37~2017年4月25日13:52:34 章节:03章_01节 03章_02节 视频长度:30:11 + 21:44 内容:面向对象设计思 ...

随机推荐

  1. 大数据处理过程核心技术ETL详细介绍

    架构挑战 1.对现有数据库管理技术的挑战. 2.经典数据库技术并没有考虑数据的多类别(variety).SQL(结构化数据查询语言),在设计的一开始是没有考虑到非结构化数据的存储问题. 3.实时性技术 ...

  2. 1kb的前端HTML模板解析引擎,不限于嵌套、循环、函数你能想到的解析方式

    传送门:https://github.com/xiangyuecn/BuildHTML copy之前说点什么 html做点小功能(什么都没有),如果是要手动生成html这种操作,容易把代码搞得乱七八糟 ...

  3. C. Multiplicity

    链接 [http://codeforces.com/contest/1061/problem/C] 题意 给你一个数组,让你找有多少个子串(并非连续,但相对位置不能换),满足bi%i==0; 分析 d ...

  4. 《Linux内核分析》实践3

    <Linux>实践--程序破解 一.掌握NOP.JNE.JE.JMP.CMP汇编指令的机器码 NOP:NOP指令即"空指令".执行到NOP指令时,CPU什么也不做,仅仅 ...

  5. SE Springer小组之《Spring音乐播放器》需求分析说明书二

    2.1 目标 Spring音乐播放器软件为课程<软件工程>所开发的课程作业,主要意图是为访问计算机中的mp3格式的音频文件,并使其能够完成访问,读取,添加,保存,播放,切换音频文件等功能. ...

  6. 利用ThreadLocal管理事务

    package com.itheima.util; import java.sql.Connection; import java.sql.SQLException; //封装了所有与事务有关的方法 ...

  7. Hacked VisualSVN Server by PHP to allow user change password

    index.php <?php$username = $_SERVER["PHP_AUTH_USER"]; //经过 AuthType Basic 认证的用户名$authed ...

  8. ASP.NET MVC自定义异常处理

    1.自定义异常处理过滤器类文件 新建MyExceptionAttribute.cs异常处理类文件

  9. 转载:必须收藏!50个最流行的免费Kubernetes工具集

    必须收藏!50个最流行的免费Kubernetes工具集 http://cloud.51cto.com/art/201806/576406.htm 在短短的两年时间里,Kubernetes在容器编排的竞 ...

  10. React props传变量

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...