shell 变量、参数、数组章节笔记
// 变量名和等号之间不能有空格
hello="123456";
echo $hello;
// 花括号只是帮助识别变量边界
echo ${hello}; // unset 删除变量
unset hello;
// 打印为空
echo $hello; // 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
// 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用 hello='12345';
echo '$hello world';
显示: $hello world // 双引号里可以有变量
// 双引号里可以出现转义字符 echo "$hello \"world\""
显示: 12345 "world" // 获取字符串长度
echo ${#hello} // 提取子字符串
// 从第2个字符开始截取5个字符
echo ${hello:1:5} // 命令的结果赋值给变量 $() || ` `
info=$(tail -n 5 ./hello.txt).
echo ${info}
或
info=`head -n 5 ./hello.txt`
echo ${info} // 参数传递
$1 获取第一个参数
$# 获取传递的参数个数
$* 获取所有的参数
$@ 获取所有的参数,与$*相同 ./1.sh 1 2 3 echo $1 // 1
echo $# // 3
echo $* // 1 2 3 // $* 和 $@ 的区别 (加上双引号后才有区别)
// "$*" 是一个参数,接收的参数当一个整体 “$@”如果是多个参数,会分开接收
// $@ 加不加引号没有影响,主要是$*加引号会结果不同 for i in $@; do
echo $i;
echo '-----split-line----'
done; for i in "$*"; do
echo $i;
echo '-----split-line----'
done; // $@把参数当成3个 循环了三次
1
-----split-line----
2
-----split-line----
3
-----split-line---- // “$*"把参数当成一个整体,循环了一次
// 如果不加引号就跟$@一样
1 2 3
-----split-line---- // 数组 hello=(1 2 3 4 5) // 数组空格分割
echo ${hello[1]} // 获取指定索引的值
hello[0]=9 // 设置数据
echo ${hello[*]} // 输出全部
echo ${#hello[*]} // 输出数组长度
echo ${hello} // 输出第一个索引的值
shell 变量、参数、数组章节笔记的更多相关文章
- Java变量参数
Java1.5添加新功能:可变参数:它适用于参数不确定性的数量,判断形势的类型.java变量参数数组操作. 特点: 1.今天的参数列表只能持续. 2.省略号(...)位于变量类型和变量名之间,前后有无 ...
- Shell脚本笔记(二)Shell变量
Shell变量 一)全局环境变量 全局变量对于定义它的shell和其子shell都是可见的,但如果生成它的shell被终止,全局变量也就消失了.另外全局变量会被子shell的同名变量覆盖. #定义一个 ...
- shell变量、函数和数组以及字符串的截取
一.变量 1.shell变量名 (1)可以由字母.数字.下划线等字符组成.但是第一个字符必须是字母或者下划线. (2)若果变量中包含下划线(_)则要特别注意,$project_svn_$date.ta ...
- shell变量,字符串,数组
一.shell变量定义: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头: 中间不能有空格,可以使用下划线: 不能使用标点符号: 不能使用bash里的关键字. 变量使用: 使用一个定义过的 ...
- 【转】shell学习笔记(二) ——shell变量
在shell中有3种变量:系统变量,环境变量和用户变量,其中系统变量在对参数判断和命令返回值判断时会使用,环境变量主要是在程序运行时需要设置,用户变量在编程过程中使用量最多. 1 系统变量 变量名 ...
- shell echo/read/printf/流程控制章节笔记
// echo read printf 流程控制 命令 1.read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量 read hello 输入xxx echo $hell ...
- shell变量定义与数组-1
1.查看系统所有shell和默认shell 查看系统所有的shell: cat /etc/shells 查看系统默认shell: echo $SHELL 2.第一个shell脚本,打印字符串Hello ...
- shell变量自增 || Python脚本接收参数
一.shell变量自增a=1a=$(($a+1))a=$[$a+1]a=`expr $a + 1`let a++ let a+=1 ((a++)) echo $a 二.python脚本接收参数 fro ...
- shell 学习笔记1-什么是shell,shell变量
一.介绍 1.什么是shell Shell 既是一种命令语言,又是一种程序设计语言,他在操作系统得最外层,负责直接与用户对话,把用户得输入解释个OS,并处理各类操作系统得输出结果,输出到屏幕返回个i用 ...
随机推荐
- 【.Net】优秀的开源框架
AutoMapper 官网:http://automapper.org/ github:https://github.com/AutoMapper/AutoMapper 文档:http://autom ...
- 【算法】欧几里得算法与青蛙约会oj
欧几里得和扩展欧几里得算法 题目: poj 1061 poj 2142 双六 扩展欧几里得算法详解 先说欧几里得算法:欧几里得算法辗转相除求\(gcd\).求\(a.b\)的\(gcd\),则利用的性 ...
- Hadoop系列(一):Hadoop集群搭建
环境:CentOS 7 JDK: 1.7.0_80 hadoop:2.8.5 两台机器:master(192.168.56.101) slave(192.168.56.102) 配置基础环境 1. ...
- atlassian-jira部署文档
部署mysql数据库,我这里使用mariadb数据库,并且创建jira的数据库和用户,下面是创建jira数据库和用户的操作,安装数据库mysq过程略.(MYSQL数据库也是可以的,不过mysql的驱动 ...
- package.json 中script脚本传入参数问题
"build:test": "cross-env BUILD_ENV=dev nuxt build", 最近项目中通过传入自定义参数区分测试和正式环境,但是发现 ...
- 关于SDK_JDK_JRE_JVM的关系
SDK JDK JRE JVM 四者的关系 一:SDK与JDK的关系(可以认为jdk只是sdk的一种子集) SDK是Software Development Kit的缩写,中文意思是“软件开发工具包” ...
- CentOS部署yapi
转载自 https://www.linuxidc.com/Linux/2018-01/150513.htm 在mongoDB添加yum源时,源路径有修改,原文中的路径404不可用 一.准备工作 1.1 ...
- UVA11825 黑客的攻击 Hackers' Crackdown 状压DP,二进制,子集枚举
题目链接Click Here [题目描述] 假如你是一个黑客,侵入了一个有着\(n\)台计算机(编号为\(1.2.3....n\))的网络.一共有\(n\)种服务,每台计算机都运行着所有服务.对于每台 ...
- window.location.href 传参中文乱码问题!!!
不是所有地方都会用Ajax 当你使用window.location.href 来传中文参数的时候 如何避免乱码问题 js 是这样写的 下面代码中 方式 封装编码 参数 username ...
- 分析web.xml
<?xml version="1.0" encoding="UTF-8"?> //xml的版本:1.0 和 编码:utf-8 <web-ap ...