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用 ...
随机推荐
- mapper.xml 的配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...
- asp.net动态为网页添加关键词的代码
如下资料是关于asp.net动态为网页添加关键词的代码,希望能对小伙伴们有较大用.HtmlMeta keywords = new HtmlMeta();keywords.Name = "ke ...
- 「洛谷4197」「BZOJ3545」peak【线段树合并】
题目链接 [洛谷] [BZOJ]没有权限号嘤嘤嘤.题号:3545 题解 窝不会克鲁斯卡尔重构树怎么办??? 可以离线乱搞. 我们将所有的操作全都存下来. 为了解决小于等于\(x\)的操作,那么我们按照 ...
- App自动化(1)--Appium-Android环境搭建
本次笔记记录Appium-Android环境搭建,主要实现在windows上通过python编写脚本来实现模拟器上安装的app自动化测试. 主要步骤:安装node.js,配置JDK环境,配置Andro ...
- 1068: [SCOI2007]压缩
题解: 区间DP 考虑状态的设计: \(dp[i][j][0/1]\)表示原字符串的\(i-j\)区间有无在中间加\(M\).并且默认在\(i\)之前加入\(M\)压缩后的最小长度,显然有转移: \[ ...
- django 4.get接口开发
根据上一篇文章,有post,那么就有get请求,其余部分不变,就是把post换成get就可以. #views.py from django.http.response import HttpRespo ...
- 利用java内部静态类实现懒汉式单例
/** * @Description: 利用键值模式控制service * @Author: zhanglifeng * @Date: 2019年 04月 28日 14:41 **/ public c ...
- 数据库基础——跟着【克里斯学SQL】哈哈。
前言: 很多同学呀,对数据库的操作仅仅只能在于Navicat 等第三方可视化的工具上面!!!! 这是可怕的,数据库的操作十分的重要,甚至,他是程序最重要的部分. 面试经常问题, 了解那个数据? 写一个 ...
- 如何部署WebSphere服务器的开发环境
WebSphere Liberty 简介 IBM WebSphere Application Server Liberty 或WebSphere Liberty Profile Server(简称 L ...
- Ubuntu16.04安装及配置nginx
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...