linux shell变量的,linux shell变量解析-程序员宅基地

技术标签: linux shell变量的  

摘要 腾兴网为您分享:linux shell变量解析,智影,智联招聘,智慧消防,音恋等软件知识,以及考拉fm电台,快快游戏,京东企业购app,pdf加密工具,高德导航3d版,电脑驱动,兰溪新闻,我爱网拍,英语趣配音版,豹米,翡翠,船运网,恋恋yy多开器,27寸桌面壁纸,摄像头检测等软件it资讯,欢迎关注腾兴网。本节内容: linux shell变量 一、linux shell 变量操作 A,变量显示、打印 语法:echo $var B,变量设置 语法:var=value 变量的设置规则: 1,变量两端不能直接接空格符 2,变量名称只能是因为...

本节内容:

linux shell变量

一、linux shell 变量操作

A,变量显示、打印

语法:echo $var

B,变量设置

语法:var=value

变量的设置规则:

1,变量两端不能直接接空格符

2,变量名称只能是因为字母与数字,但开头不能使数字

3,双引号内的特殊字符如$等,保持原本特性

复制代码 代码示例:

[root@jbxue ~]# var="lang is $LANG"

[root@jbxue ~]# echo %var

root@jbxue ~]# echo $var

lang is zh_CN.UTF-8

1,单引号内的特殊字符则仅为一般字符

复制代码 代码示例:

[root@jbxue ~]#

[root@jbxue ~]# var='lang is $LANG';echo $var

lang is $LANG

2,在一串命令中,还需要通过其他命令提供的信息,可用单引号‘命令'或&(命令),举例:指令1在执行的过程中需要先知道指令2的的值,但是指令1,2在一串指令中

复制代码 代码示例:

[root@jbxue ~]# uname -r

2.6.18-371.el5

[root@jbxue ~]# cd /lib/modules/$(uname -r)/kernel

[root@jbxue kernel]#

3,变量的累加

复制代码 代码示例:

[root@jbxue kernel]# var=${var}yes

[root@jbxue kernel]# echo $var

lang is $LANGyes

4,数组变量设置与读取

复制代码 代码示例:

[root@jbxue ~]# array[1]=a

[root@jbxue ~]# array[2]=b

[root@jbxue ~]# array[3]=c

[root@jbxue ~]# echo ${array[1]}

a

[root@jbxue ~]# echo ${array[2]}

[root@jbxue ~]# echo ${array[3]}

c

C.取消变量(unset)

语法: unset var

D.变量查看(set)

语法:set

比较重要的几个自定义变量

HISTFILE:历史记录存储位置

MAILCHECK:多少秒扫描次邮箱,查看是否有新邮件

PS1:提示符设置

$:目前这个shell的PID

?:刚才执行完命令的回传码。0为正确,非0为错误

举例:

比较重要的几个自定义变量

HISTFILE:历史记录存储位置

MAILCHECK:多少秒扫描次邮箱,查看是否有新邮件

PS1:提示符设置

$:目前这个shell的PID

?:刚才执行完命令的回传码。0为正确,非0为错误

E.变量键盘读取(read)

语法:read [-pt] var

选项与参数:

-p:后可跟提示信息

-t:后跟等待输入的描述

举例:

复制代码 代码示例:

[root@jbxue ~]# read atest

this is a test

[root@jbxue ~]# echo $atest

this is a test

[root@jbxue ~]# read -p "please input.. " attest

please input.. hello world      =>提示信息

[root@jbxue ~]# echo $atest

hello world

[root@jbxue ~]# read -p "please input.. " -t 5  atest

please input..  =>5秒未输入回到命令行模式

[root@jbxue ~]#

[root@jbxue ~]# echo $atest

hello world

F.变量声明(declare)

语法:declare [-aixr] var

选项与参数

declare后不接任何内容,代表查询所有变量,作用和set一致

-a  :将后面名为 variable的变量定义成为数组 (array)类型

-i  :将后面名为 variable的变量定义成为整数数字 (integer)类型

-x  :用法与 export一样,就是将后面的 variable变成环境变量;

+x :将环境变量变为自定义变量

-r  :将变量配置成为 readonly类型,该变量不可被更改内容,也不能 unset(需要注销后再登陆才能变回)

举例:

复制代码 代码示例:

[root@jbxue ~]# echo $sum

100+50+10 =>默认当做字符串处理

[root@jbxue ~]# declare -i sum=100+50+10

[root@jbxue ~]# echo $sum

160 =>声明为int 因此可以做加法

[root@jbxue ~]# declare -x sum

[root@jbxue ~]# export | grep sum

declare -ix sum="160" =>查询到是环境变量

[root@jbxue ~]# declare +x sum

[root@jbxue ~]# export | grep sum= >查询不到是环境变量

[root@jbxue ~]# declare -r sum;sum=test

bash: sum: readonly variable =>只读允许修改

G.变量内容删除

语法

${var#/key}:从前往后删除符合key最短的那一个

${var##/key}:从前往后删除符合key最长的那一个

${var%/key}:从后往前删除符合key最短的那一个

${var%%/key}:从后往前删除符合key最短的那一个

举例:${var#/key}

复制代码 代码示例:

[root@jbxue ~]# path=${PATH};echo $path

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@jbxue ~]# echo ${path#/*:}        =>key为*.(*为通配符)

/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

举例:${var##/key}

复制代码 代码示例:

[root@jbxue ~]# path=${PATH};echo $path

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@jbxue ~]# echo ${path##/*:}

/root/bin

H.变量内容替换

语法:

${var/旧字符串/新字符串}:替换第一个满足条件的字符串

${var//旧字符串/新字符串}:替换所有满足条件的字符串

举例:${var/旧字符串/新字符串}

复制代码 代码示例:

[root@jbxue ~]# path=${PATH};echo $path

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@jbxue ~]# echo ${path/sbin/SBIN}

/usr/kerberos/SBIN:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

举例:${var//旧字符串/新字符串}

复制代码 代码示例:

[root@jbxue ~]# path=${PATH};echo $path

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@jbxue ~]# echo ${path//sbin/SBIN}

/usr/kerberos/SBIN:/usr/kerberos/bin:/usr/local/SBIN:/usr/local/bin:/SBIN:/bin:/usr/SBIN:/usr/bin:/usr/X11R6/bin:/root/bin

二、环境变量

普通变量可以理解为局部变量,环境变量可以理解为全局变量,登陆成功获得的bash shell就是一个进程,在此情况下再去打开一个新SHELL就是他的子进程,子进程是无法获取父进程的自定义变量,但是可以获取父进程的环境变量

A.环境变量导出(export )

语法:export  var

B.环境变量查看(env )

语法:env

比较重要的几个环境变量

HOME:代表用户的主文件夹

SHELL:代表目前使用的shell是哪个程序,我现在使用的是/bin/bash

HISTSIZE:历史记录最大存储条数

MAIL:mail命令系统收信时,系统会读取的信箱文件

PATH:执行文件查找路径

LANG:语系信息

RANDOM:随机数变量(0~32767)

三、提示符的设置(PS1)

变量PS1='[\u@\h \W]\$ '记录了命令提示符的显示格式 [root@jbxue ~]#

符号意义

\d :可显示出[星期月日]的日期格式,如:"Mon Feb 2"

\H :完整的主机名。

\h :仅取主机名在第一个小数点之前的名字

\t :显示时间,为 24小时格式的[HH:MM:SS]

\T :显示时间,为 12小时格式的[HH:MM:SS]

\A :显示时间,为 24小时格式的[HH:MM]

\@ :显示时间,为 12小时格式的[am/pm]样式

\u :目前使用者的账号名称,如[root];

\v :BASH的版本信息,如鸟哥的测试主板本为 3.2.25(1),仅取[3.2]显示

\w :完整的工作目录名称,由根目录写起的目录名称。但家目录会以 ~取代;

\W :利用 basename函数取得工作目录名称,所以仅会列出最后一个目录名。

\# :下达的第几个命令。

\$ :提示字符,如果是 root时,提示字符为 #,否则就是 $

举例:

复制代码 代码示例:

[root@jbxue ~]# PS1='[\u@\h\A \W \#]\$ '

[root@jbxue23:45 ~ 82]#

shell环境变量$IFS用法举例

shell脚本学习指南之shell变量

export为shell脚本添加指定环境变量的方法

expect中为send语句上加变量

shell特殊变量的含义

有关linux子shell变量的相关知识

awk中调用shell变量的例子

sed、awk调用shell变量的方法

awk基础知识(7)-变量

相关推荐

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30341445/article/details/116889678

智能推荐

程序员在页面友好性上常犯的5种错误以及改正方法_程序出错状态及其纠正方法-程序员宅基地

文章浏览阅读929次。程序员在页面友好性上常犯的5种错误以及改正方法 我是一个性情乖戾的web用户,但我想这也帮助促使我成为了一名优秀的Web开发人员。当我看到一个网站上有让人不爽的设计时就会非常的恼怒,一些很简单的东西为什么做不好?下面是5种常见的可用性方面的错误,以及如何纠正这些问题的方法。给自己方便,也与人方便,确保自己不要犯这样的错误。使用表达submit事件,不要用click事件;请_程序出错状态及其纠正方法

Android jdb debug-程序员宅基地

文章浏览阅读83次。在ubuntu上android的debug的方式有很多种,可以用eclipse,android studio。但是有的时候,为了方便也可以用命令行去debug。下面列出命令行debug的过程xxx:~$ cd source/xxx:~/source$ cd packages/apps/Settings/xx:~/source/packages/apps/Settings$ adb s..._通过jdb动态调试找到正确的变量,然后进行代码注入,修改try again 为hacked!!

Autotools (1)_no available formula with the name "autotools-程序员宅基地

文章浏览阅读565次。1. File Format of *.pc FilesThe heart of pkg-config lies in the data files that the various applications install. These data files are actually simple text files with some special syntax thrown in_no available formula with the name "autotools

使用postman解决浏览器POST测试时登录问题:未登录无法进行POST提交_post请求 未登录,无法进行访问-程序员宅基地

文章浏览阅读8k次,点赞5次,收藏5次。在写后端接口时需要测试接口是否可用,这里使用postman进行接口的测试。使用浏览器时可以进行get请求,但是post就会提交失败,有博主说在浏览器控制台输入以下js代码可以进行post提交:fetch(new Request('url',{ method:'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded'}, body:"param1=value1&param2=value2"}_post请求 未登录,无法进行访问

css课堂笔记30-程序员宅基地

文章浏览阅读50次。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Do.

ajax php 爬虫教程,使用PHP+AJAX让WordPress动态加载文章的教程-程序员宅基地

文章浏览阅读119次。为什么要动态加载文章?1. 快速向访客展示页面文章很容是包含大量文字和多媒体资源 (如: 图片, 视频, 音乐), 加载这些内容需要占用很多的时间. 如果你的页面上存在大量文章, 当访客发现页面久久没有加载完成就感到不耐烦. 这是动态加载文章的主要目的.2. 让文章列表化使页面上的文章成为一个列表, 减少页面的空间占用, 访客可以方便的移动到页面下方, 提高旧文章被点击的几率. 并且你可以在页面上..._蜘蛛爬取/wp-admin/admin-ajax.php文件

随便推点

又一知名教授在美被捕!饶毅发文声援,中方也回应了!-程序员宅基地

文章浏览阅读623次。点击上方“计算机视觉工坊”,选择“星标”干货第一时间送达 来源丨中国新闻网、环球网、环球人物、饶毅公众号 编辑丨募格学术美东时间1月14日,美国司法部官网消息显示,美国工程院院士、麻省..._田長霖基金會名聲

SSH整合 出现常见错误(转)-程序员宅基地

文章浏览阅读592次。0、 需要标识符a) 不在函数内1、 非法表达式开始b) 可能:丢失括号 .2. no data founda) 可能:setInt(1,100)中,没有100这个值3. 找不到符号a) 可能:没导入包4. 指定了无效URLa) 可能:数据库名或IP错误,即连接出错5. 类路径没有找到a) 可能: ClassNotFoundException: oracle.jdbc.driver.Or..._ssh password was requested

《山海经》异兽75种,附图-程序员宅基地

文章浏览阅读2.6k次。本文是我在在网络上搜集资料之汇总,难免有缺漏,而且,这些个图片想全部搜集到符合形象的真是难上加难……总之,你有更好的图片或者我有异兽没有列出来,请指明。山海经异兽是《山海经》记载的奇异怪兽75种。《山海经》是先秦古籍,是一部富于神话传说的最古老的地理书。它主要记述古代地理、物产、神话、巫术、宗教等,也包括古史、医药、民俗、民族等方面的内容。除此之外,《山海..._山海经异兽75种

mysql硬盘最长活动时间100%_软件引起的磁盘最长活动时间100%-程序员宅基地

文章浏览阅读1.9k次。就象会传染一样,刚解决一个磁盘最长活动时间100%的问题,又遇一例。现象类似,台式电脑,win7系统,使用中卡顿,打开程序与文档缓慢,鼠标光标一直在转圈,打开资源监视器,磁盘一项里的最长活动时间一直100%不降。开始还真以为又是硬盘坏了,但是进一步检查又与前文(如何解决磁盘最长活动时间100%)中遇到例子有所不同,不同之处:1、在安全模式下最长活动时间恢复正常,只有明显读写动作时才上升。2、事件查..._磁盘最长活动时间

ser-u服务器安装和使用(创建ftp服务器)-程序员宅基地

文章浏览阅读207次。安装serv-u,创建ftp服务器,以及连接服务器上传和下载文件。工具/原料serv-u,8uftp装有win7以上或者winserver系统的电脑安装serv-u1http://pan.baidu.com/s/1nttKuVZ,(serv-u绿化版下载地址)。下载完成后解压到你平时安装文件的盘(我一般在D盘..._serv-u服务器

【洛谷OJ】P1047 校门外的树_oj校门外的树-程序员宅基地

文章浏览阅读444次。import java.util.Iterator;import java.util.LinkedList;import java.util.Scanner;class Zone{ int start; int end; Zone(int start, int end){ this.start = start; this.end = ..._oj校门外的树