首页 > 系统相关 >无涯教程-Linux - 替换语句

无涯教程-Linux - 替换语句

时间:2023-11-26 18:31:36浏览次数:40  
标签:教程 word 无涯 Value echo Variable Linux var 替换

当Shell遇到包含一个或多个特殊字符的表达式时,它将执行替换语句。

在此,变量的打印值由其值代替。同时,"\n" 换行-

#!/bin/sh

a=10
echo -e "Learnfk.com of age is $a\n"

您将收到以下输出。在这里, -e 选项可以解释反斜杠转义符。

Learnfk.com of age is 10

以下是没有 -e 选项的输出-

Learnfk.com of age is 10\n

以下可在echo命令中使用的转义序列-

Sr.No. Escape & 描述
1

\\

反斜杠

2

\a

警报(BEL)

3

\b

退格键

4

\c

禁止尾随换行符

5

\f

换页

6

\n

换行

7

\r

回车

8

\t

水平标签

9

\v

垂直标签

命令替换

`command`

执行命令替换时,请确保使用反引号,而不是单引号字符。

命令替换通常用于将命令的输出分配给变量。以下每个示例演示命令替换-

#!/bin/sh

DATE=`date`
echo "Date is $DATE"

USERS=`who | wc -l`
echo "Logged in user are $USERS"

UP=`date ; uptime`
echo "Uptime is $UP"

执行后,您将收到以下输出-

Date is Thu Jul  2 03:59:57 MST 2021
Logged in user are 1
Uptime is Thu Jul  2 03:59:57 MST 2021
03:59:57 up 20 days, 14:03,  1 user,  load avg: 0.13, 0.07, 0.15

可变替换

变量替换使Shell程序员可以根据变量的状态来操作变量的值。

下表是所有可能的替代方法-

Sr.No. Form & 描述
1

${VAR} 

替换 var 的值。

2

${var:-word}

如果 var 为null或未设置,则将 word 替换为 var 。 var 的值不变。

3

${var:= word}

如果 var 为null或未设置,则将 var 设置为 word 的值。

4

${var:?message}

如果 var 为null或未设置,则将 message 打印为标准错误。

5

${var:+word}

如果设置了 var ,则将 word 替换为var。 var 的值不变。

以下是显示上述替换的各种状态的示例-

#!/bin/sh

echo ${var:-"Variable is not set"}
echo "1 - Value of var is ${var}"

echo ${var:="Variable is not set"}
echo "2 - Value of var is ${var}"

unset var
echo ${var:+"This is default value"}
echo "3 - Value of var is $var"

var="Prefix"
echo ${var:+"This is default value"}
echo "4 - Value of var is $var"

echo ${var:?"Print this message"}
echo "5 - Value of var is ${var}"

执行后,您将收到以下输出-

Variable is not set
1 - Value of var is
Variable is not set
2 - Value of var is Variable is not set

3 - Value of var is
This is default value
4 - Value of var is Prefix
Prefix
5 - Value of var is Prefix

参考链接

https://www.learnfk.com/linux/linux-shell-substitutions.html

标签:教程,word,无涯,Value,echo,Variable,Linux,var,替换
From: https://blog.51cto.com/u_14033984/8571765

相关文章

  • Linux LVM磁盘
    第八章LVM磁盘LVM概述LVM解释在我们的生产工作中,有时候会出现这种情况,我们规划主机的时候只给了/home50GB,等到用户众多之后,这个文件系统不够大,此时怎么办?我们可以加一块新硬盘,然后重新分区并格式化,将/home的数据完整地复制过来,然后将原本的分区卸载重新挂载新分区,是可以解决......
  • 【Linux】基本指令(初始Linux)
    提示:寡人是用的XShell来写Linux的首先介绍一下在XShell上的复制粘贴复制:ctrl+insert(有些兄弟可能需要按fn来配合)粘贴:shift+insert写到一半指令发现自己写错了,可以ctrl+c,及时止损。和人生一样(/_\)01.ls指令语法:ls[选项][目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与......
  • linux下如何卸载删除php
    1、首先执行如下命令查找全部php软件包1#rpm-qa|grepphp可以看到如下内容:123456#php-pdo-5.1.6-27.el5_5.3#php-mysql-5.1.6-27.el5_5.3#php-xml-5.1.6-27.el5_5.3#php-cli-5.1.6-27.el5_5.3#php-common-5.1.6-27.el5_5.3#php-gd-5.1.6-27......
  • 理解Linux的I/O重定向与管道
    在Linux系统中,I/O重定向与管道是强大而灵活的工具,它们使得用户能够更有效地处理输入输出流,实现各种复杂的数据处理任务。I/O重定向1.输入重定向(<)Linux允许用户将一个文件的内容作为标准输入,这在处理大量数据或者自动化任务时非常有用。例如:$command<input.txt这将使co......
  • Linux三剑客-sed
    今天继续介绍Linux三剑客中的sedsed是streameditor(流编辑器)的缩写。它最常见的用法是进行文本替换。下面介绍一些sed的常见用法。sed最常见的功能,是用它进行文本替换。它的替换形式和vim非常相似,具体语法如下:$sed's/pattern/replace_string/'file其中pattern代表替换用......
  • linux之进程控制(万字长文详解)
    进程控制进程创建——fork函数用于创建子进程的系统调用接口!这是一个函数函数执行前只有一个父进程,函数执行后有一个父进程一个子进程进程调用fork,当控制转移到内核中的fork代码后,内核做分配新的==内存块和内核数据结构(PCB,地址空间,页表)==给子进程将父进程部分数据结构内......
  • 无涯教程-Linux - 条件判断
    在本章中,我们将了解Unix中的Shell判断语句。if...else语句case...esac语句if...else语句UnixShell支持以下形式的if…else语句-if...fi语句if...else...fi语句if...elif...else...fi语句CASE...ESAC声明您可以使用多个if...elif......
  • ggml教程|mnist手写体识别量化推理
    title:ggml教程|mnist手写体识别量化推理banner_img:https://cdn.studyinglover.com/pic/2023/11/fa14d6dfd95fb9d38276a50a5519e2d2.webpdate:2023-11-1218:49:00ggml教程|mnist手写体识别量化推理MNIST手写体识别是经典的机器学习问题,可以被称作机器学习的helloworld......
  • Linux学习随笔——进程管理
    一、查看进程1.静态进程ps:命令可以查看静态进程,类似给进程制作快照;psaux命令可以查看当前目录的进程;psaux--sort-%cpu:可以查看进程按照CPU占用百分比的降序排列;ps-ef:可以查看UID、PID、PPID等信息;psaxo:可以快速查找需要显示的内容,内容简介并且有针对性;几种常用的查看......
  • 无涯教程-Linux - 运算符
    每个Shell支持各种运算符。我们将在本章中详细讨论Bourneshell(默认Shell)。我们现在将讨论以下运算符-算术运算符关系运算符布尔运算符字符串运算符BourneShell最初没有任何执行简单算术运算的机制,但它使用外部程序,即awk或expr。以下示例显示如何将两个数字相加-#......