首页 > 系统相关 >shell变量

shell变量

时间:2023-01-04 18:23:19浏览次数:37  
标签:shell 变量 单引号 echo your name

目录

shell变量

1、变量的命名规则

以字母或下划线开头,组合的数字、字母、下划线,中间不能有空格,但可以有下划线。

1.1、正确的命名:

var
var2
_var
var_a2

1.2、错误的命名

?var=123
user*name=var

1.3、隐式命名

for file in `ls /etc`
或
for file in $(ls /etc)

1.4、使用变量

根据定义的变量名如var,用美元符使用变量$var

your_name="qinjx"
echo $your_name
echo ${your_name}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

1.5、只读变量

一下只读变量重新赋值会报错。

varUrl = 'www.baidu.com'
readonly varUrl
varUrl = 'www.me.com'

1.6、删除变量

使用unset

unset varUrl

被删除的变量不能够再次使用

#!/bin/sh

myUrl="https://www.baidu.com"
unset myUrl
echo $myUrl

以上没有任何输出

1.7、变量类型

运行shell时,会同时存在三种变量:

  • 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

  • 2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

  • 3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

2、字符串

字符串是最常见的变量,有分单引号和双引号字符变量。

2.1、单引号变量

原样数据变量

my_var = '$year baidu.com'

1、单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;

2、单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。

2.2、双引号变量

your_name="baidu"
str="Hello, I know you are \"$your_name\"! \n"
echo -e $str

输出结果为:

Hello, I know you are "baidu"!

特点:

可以有变量,可以出现转义字符

2.3、拼接字符

your_name="runoob"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting  $greeting_1

# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2  $greeting_3

输出结果为:

hello, runoob ! hello, runoob !
hello, runoob ! hello, ${your_name} !

2.4、获取字符串长度

string="abcd"
echo ${#string}   # 输出 4

2.5、提取子字符串

string="runoob is a great site"
echo ${string:1:4} # 输出 unoo

2.6、查找子字符串

查找字符 io 的位置(哪个字母先出现就计算哪个):

string="runoob is a great site"
echo `expr index "$string" io`  # 输出 4

注意: 以上脚本中 ` 是反引号,而不是单引号 ',不要看错了哦。

标签:shell,变量,单引号,echo,your,name
From: https://www.cnblogs.com/lgxdev/p/17025679.html

相关文章

  • shell的介绍以及使用
    目录shell的介绍以及使用1、shell脚本2、shell环境3、第一个shell脚本4、运行shell脚本4.1、作为可执行程序4.2、作为解释器参数shell的介绍以及使用Shell是一个用C语......
  • shell数组
    shell数组shell数组中只有一维数组,没有二维数组。下标从0开始,不需要初始化数组大小。1、语法array_name=(value1value2...valuen)简单的创建:#!/bin/bashmy_arra......
  • 使用EOF生成文件,变量名为空
    1.使用EOF变量名为空案列EOF不加单引号执行cat>inotify_rsynx.sh<<EOF#!/bin/bashINOTIFY_CMD="/usr/local/bin/inotifywait-mrq-emodify,create,attrib,mov......
  • 渗透工具burpsuite的安装与配置环境变量
    Burpsuite简介Burpsuite是用于攻击web应用程序的集成平台,它可以算是web安全工具里面的瑞士军刀。所有的工具共享一个能处理并显示HTTP消息的可扩展框架,模块之间无缝交换所有......
  • 通过xshell在linux上安装nginx1.12.0
    0)环境安装Nginx是C语言开发,建议在Linux上运行,当然,也可以安装Windows版本,本篇则使用CentOS7作为安装环境。 0.1gcc安装安装nginx需要先将官网下载的源码进......
  • Linux环境下java环境变量配置简单说明
    第一步:到jdk包的路径下tar-xvfjdk-8u121-linux-x64.tar.gz-C/usr/lib/jvm第二步:cd/usr/lib/jvmls-ls查看下 第三步:配置环境变量vim/etc/profile按键i进入插入......
  • Linux学习4之shell脚本中的小数运算
    1.awkhadoop@Mcnode1:~/cloud/adam/xubo/data/test20160310/test$catdemical.sh#!/bin/bashecho`awk-vx=2.45-vy=3.123'BEGIN{printf"%.2f\n",x*y}'`s=1.5echo$s......
  • Linux学习5之shell显示当前目录下所有的文件和文件夹
    hadoop@Mcnode4:~/cloud/adam/xubo/data/test20160310/bwa3sh/test142234$catshowFileAndDirectory.sh#!/bin/bashdir=$(ls-l./|awk'!/^d/{print$NF}')foriin$d......
  • Java问题总结之31-成员变量声明
    [修饰符]   类型   变量名;修饰符有:①public。指明变量为公有,即程序中的其他类均可访问此类中的变量。②protected.指明变量为受保护访问。可被同一个......
  • scrapy shell && ipython
    scrapyshell:Scrapy终端,是一个交互终端,供您在未启动spider的情况下尝试及调试您的爬取代码。其本意是用来测试提取数据的代码,不过您可以将其作为正常的Python终端,在上面......