shell通配符, 变量, shell作用域
1. 指定格式输出当前时间:
echo `date +%Y%m%d` # 注意使用反引号, +号后面不要有空格
反引号中的东西会被当做命令来执行, 并输出执行的结果
2. $uid用于判断当前是否是root用户登陆的, 是为0, 否则非零.
3. * 匹配任意多个字符, 注意不要带引号; ? 匹配任意一个字符
[a-Z] 匹配任意小写或大写字母; [0-9] 任意数字; [abc] abc中任意一个
[^abc] 取反的意思, 匹配任意非abc的一个字符;
() 在子shell中执行括号中的命令, 如(ls), (cd xx/yy);
{} 集合; mkdir -p a/{b,c}; a目录下有b和c目录
mkdir -p a{b/m,c/n}; a目录下有b和c目录, b下有m,c下有n
还可嵌套使用: mkdir -p a{b/{x,y},c/n}; b下有x,y两个目录
{} 中的元素会被挨个拼接, 用法如下:

4. shell中变量的使用(使用$ip来引用变量):
shell中变量赋值可分为两类, 分别是显示赋值和隐式赋值
ip=1.1.1.1 或者 read ip; # read命令会读取命令行中的输入内容, 并赋值给变量ip
read -p "请输入内容: " ip
5. shell中的位置变量,
与普通变量不同, 普通变量都需要先定义(无论是显示赋值还是read), 再通过$name来引用; 而位置变量不同,
位置变量是系统内置的, 无需定义, 直接在使用处通过$number来引用即可, 其会自动从命令行中对应位置获取
值并引用.
6. shell中变量分类(当前shell和全局):
直接定义的ip=1.1.1.1只在当前shell中有效, 可使用export ip来使ip为全局作用域生效, 此处全局也只限于当前shell
及其子shell中使用, 跨端的shell是引用不到的.
7. 注意理解当前shell和子shell的区别, 当前shell中不使用export定义的变量, 使用bash, sh或相对路径执行的文件内是
引用不到变量的, 但是使用. 或者 source执行的文件是可以引用的; 同理在文件中定义的变量, 要想在shell中引用到
就必须使用. 或source来执行, 因为这两种方式是在当前shell中执行文件内容的.
8. 查看系统中已存的所有环境变量, 直接输入: env 回车即可.

basename 用来获取文件名, 使用$0时,获取到的是输入可能是带路径的文件, 常配合basename使用来获取文件名
如: basename $0; dirname 用来获取目录名称,及文件名之前的所有
shell通配符, 变量, shell作用域的更多相关文章
- 【Linux】Shell三类变量的作用域——linux shell “永久环境变量”、“临时环境变量”和"普通变量"之完全解读
2015-05-08 00:15 3896人阅读 评论(10) 收藏 举报 本文章已收录于: 分类: 软件开发进阶(419) 作者同类文章X Unix/Linux杂项(118) 作者同类文章X ...
- 1shell变量的作用域
Shell 局部变量 Shell 全局变量 shell全局变量的易错点 linux shell中./a.sh , sh a.sh , source a.sh, . ./a.sh的区别 Shell 环境 ...
- Shell中脚本变量的作用域
原文地址:http://blog.csdn.net/abc86319253/article/details/46341839 在shell中定义函数可以使代码模块化,便于复用代码.不过脚本本身的 ...
- [Z] Shell中脚本变量和函数变量的作用域
在shell中定义函数可以使代码模块化,便于复用代码.不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题. (1)Shell脚本中定义的变量是global的,其作用域从被定 ...
- Shell变量的作用域:Shell全局变量、环境变量和局部变量
Shell 变量的作用域(Scope),就是 Shell 变量的有效范围(可以使用的范围). 在不同的作用域中,同名的变量不会相互干涉,就好像 A 班有个叫小明的同学,B 班也有个叫小明的同学,虽然他 ...
- Linux Shell 通配符、元字符、转义符【转帖】
作者:程默 说到shell通配符(wildcard),大家在使用时候会经常用到.下面是一个实例: 1 1 2 3 4 [chengmo@localhost ~/shell]$ ls a.txt ...
- Linux shell 通配符 / glob 模式
概念 glob 模式(globbing)也被称之为 shell 通配符,名字的起源来自于 Unix V6 中的 /etc/glob (详见 man 文档).glob 是一种特殊的模式匹配,最常见的是通 ...
- Unix Shell 通配符、转义字符、元字符、特殊字符
shell通配符: * 匹配0或多个字符 a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, a01b, ab等 ? 匹配任意一个字符 a?b a与b之间有且只有一个字符 ...
- shell编程变量介绍与表达式详解
shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据.脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则. 在 Bash shell ...
随机推荐
- FCC---CSS Flexbox: Use the flex-direction Property to Make a Row
Adding display: flex to an element turns it into a flex container. This makes it possible to align a ...
- Mac环境安装非APP STORE中下载的软件,运行报错:“XXX” is damaged and can’t be opened. You should move it to the Trash. 解决办法
出现这个错误的大多数原因都是因为系统设置的问题,因为系统不信任你从其他地方下载的软件安装包,所以运行时就给你阻止了.具体的设置步骤如下: 1. 打开系统偏好设置 (System Preferences ...
- crontab -e 报错(E518: Unknown option: foldenable)
crontab 默认编辑器为vi,不支持foldenable #crontab -e Error detected while processing /root/.vimrc: line : E518 ...
- 解决Android Screen Monitor在android8.0及以上系统报错:"E/Screenshot: Unsupported protocol: 2"
1.打开命令窗口,切换到 asm.jar 所在目录,执行 java -jar asm.jar,正常情况下打开后连接上设备会显示出画面 2.但是在android8.0以上系统该asm.jar包就无法正常 ...
- docker Dockerfile里使用的命令说明
一,dockerfile格式 注释# 指令 参数 指令不区分大小写,但是推荐全部大写指令. 指令从上到下顺序被执行 第一个指令必须是[FROM],指示出要使用的基础镜像. 执行docker file时 ...
- IO 多路复用详解
转自:https://blog.csdn.net/sehanlingfeng/article/details/78920423
- 多对多表结构的设计ManyToManyField(不会生成某一列、生成一张表):
示例: 脚本: from django.db import models# Create your models here. class Publisher(models.Model): name = ...
- Java向上下转型中的陷阱{详细}
1: 多态 多态时继承下面的产物,之所以存在向上向下转型的目的,就是解决参数传递的不变形,体现面向接口编程的重要性, 1.1 方法的多态性 ①. 方法的重载:同一个方法名称可以根据参数的类型或 ...
- emojy表情的小问题
报错内容:在emojy表情入库或者更新库的时候,会报这个错:java.sql.SQLException:Incorrect string value: '\xF0\x9F\x99\x8F\..' fo ...
- java高并发系列【共34篇,强力建议观看】
第1天:必须知道的几个概念 第2天:并发级别 第3天:有关并行的两个重要定律 第4天:JMM相关的一些概念 第5天:深入理解进程和线程 第6天:线程的基本操作 第7天:volatile与Java内存模 ...