Bash 连接字符串

2023-11-04

在 Bash 中连接字符串就像将它们与双引号 (“ ”)特点。但是,如果您的字符串包含多个单词或包含特殊字符,您可能需要使用不同的方法。幸运的是,Bash 编程语言提供了多种连接字符串的方法。

本文探讨了在 Bash 脚本和程序中组合字符串的五种常见方法。继续阅读以了解有关在 Bash 中连接字符串的更多信息以及哪种方法最适合您的具体情况。

连接字符串

在 Bash 中组合字符串的最简单方法是使用双引号 (“ ”)特点。您可以将字符串括在双引号内并将它们组合起来形成单个字符串。这对于组合不需要任何特殊格式的短字符串很有用。下面的示例演示如何使用双引号将两个短字符串组合成一个长字符串。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#/usr/bin/env bash
# 用于连接字符串的示例 shell 脚本
 
# 声明变量
STR1=“欢迎”
STR2=“技术管理”
 
# 连接两个字符串
STR3=“$STR1$STR2”
echo "$STR3"
 
# 你甚至可以在字符串之间添加空格
STR3=“$STR1 $STR2”  
echo "$STR3"

echo 命令将打印结果字符串。


Output
WelcomeTecadmin Welcome Tecadmin

将字符串变量与文字连接起来

文字代表一个固定值。我们还可以将文字字符串与变量值连接起来,而不是连接两个字符串变量。例如,输入用户的名字并在其前面加上“Welcome”文字字符串作为前缀。

1
2
3
4
5
6
7
8
9
10
11
#/usr/bin/env bash
 
# 连接变量的 shell 脚本
# 带有文字字符串
 
# 获取用户输入并存储到变量
read -p “你的名字是什么: ” STR1
 
# 连接字符串
STR2=“欢迎${STR1}”
echo "$STR2"

执行上面的脚本,它会提示你输入你的名字。然后将“Welcome”作为前缀连接到输入字符串并打印结果。


Output
Enter your first name: Rahul Welcome Rahul

连接字符串+=操作员

在通用编程语言中+=将 RHS 值添加到 LHS 中。您还可以使用此方法将 RHS 字符串变量连接到 LHS 字符串。

1
2
3
4
5
6
7
8
9
10
11
#/usr/bin/env bash
# 用于连接字符串的示例 shell 脚本
 
# 声明变量
STR=“欢迎来到”
 
# 将另一个字符串连接到该变量。
STR+=“技术管理员”
 
# 显示结果字符串
echo $STR

这将打印:Welcome to TecAdmin

使用 Printf 命令

在巴什中,print是用于格式化数据并将数据打印到标准输出的命令。这-v选项用输出初始化变量而不是在输出上打印。

1
2
3
4
5
6
7
8
9
10
11
12
13
#/usr/bin/env bash
 
# 用于连接字符串的示例 shell 脚本
# 使用打印命令。
 
# 声明变量
PREFIX=“先生你好。 ”
 
# 将另一个字符串连接到该变量。
printf -v STR “$前缀拉胡尔”
 
# 显示结果字符串
echo $STR

这将打印:Hello Mr. Rahul

使用循环

当输入字符串的数量未定义时,您需要将它们连接成一个字符串。 while 循环将帮助您使用连接 (+=) 运算符。

例如,您需要读取文件的所有行并将它们连接在一个字符串中。为此,我们将逐行读取文件内容并将它们连接起来。

1
2
3
4
5
6
7
8
9
10
11
12
#/usr/bin/env bash
 
# 用于连接字符串的示例 shell 脚本
# 使用 while 循环
 
# 声明变量
while read LINE; do
  STR+="$LINE "
done < data.txt
 
# 显示结果字符串
echo $STR

结论

本文探讨了在 Bash 脚本和程序中组合字符串的五种常见方法。组合字符串的最简单方法是使用双引号字符。您还可以使用 for 循环命令迭代一系列单词并将它们组合成一个字符串。 join (+) 命令是 Bash 内置命令,可用于将一系列项目组合成单个字符串。 BASH 脚本语言允许您执行更复杂的字符串操作,包括组合变量、计算等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bash 连接字符串 的相关文章

  • 如何在 bash 脚本中使用并行编程/多线程?

    这是我的脚本 bin bash script to loop through directories to merge fastq files sourcedir path to source destdir path to dest fo
  • 任何退出 bash 脚本但不退出终端的方法

    当我使用exitshell 脚本中的命令 该脚本将终止终端 提示符 有什么方法可以终止脚本然后停留在终端中吗 我的剧本run sh预计通过直接获取或从另一个脚本获取来执行 编辑 更具体地说 有两个脚本run2 sh as run sh ec
  • shell脚本中的“##”是什么意思? [复制]

    这个问题在这里已经有答案了 在编写脚本时 我遇到了这个命令 f file 我很想知道 什么是 这行是什么意思 In bash 它删除了前缀模式 在这里 它基本上为您提供了最后一个路径分隔符之后的所有内容 通过贪婪地删除前缀 后面跟随任意数量
  • 有哪些基于对象的 shell?

    我打算写一个面向对象的shell 基于Python 我已经有很多想法了 但在实现它之前 我想通过一些现有的 shell 来激发我的灵感 我所说的面向对象的基本意思是 参数不仅仅是字符串数组 而且是对象数组 返回值也是一个对象 不仅有 std
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • 用于编译和运行 C++ 的 bash 脚本

    我正在尝试进入 C 但必须使用冗长的命令通过命令行运行东西很烦人 所以我想制作一个 bash 脚本来简化过程并运行这些命令 bin bash if 1 start then cd CCPP cd HelloWorld g Wall W We
  • Python 脚本:每次打印新行到 shell,而不是更新现有行

    说到Python 我是个菜鸟 我有一个 python 脚本 它给我这样的输出 last ZVZX W3vo9I Downloading video webpage last ZVZX W3vo9I Extracting video info
  • VBA Shell 并等待退出代码

    我正在打包一个办公应用程序 VBA 它调用 C 控制台应用程序来执行应用程序 大型模拟程序 的一些繁重工作 我希望能够让 VBA 应用程序等待控制台应用程序完成并从控制台应用程序检索退出代码 我已经能够做到前者 但尚未能够从应用程序中检索退
  • 检查 bash 中是否存在关联数组元素

    在 bash 脚本中 我在变量中有一个区域设置 如下所示 locale fr ma 我也有一个像这样的关联数组 declare A new loc map new loc fr ma en ma new loc el gr en gr ne
  • 使用 shell=True 将 PATH 设置为 bitbake 的“source”在 Python 中没有效果

    下面是shell脚本中的代码 source proj common tools repo etc profile d repo sh repo project init branch repo project sync source pok
  • Bash 中所有匹配的^单词^替换^?

    为了澄清 我正在寻找一种方法来执行global搜索并替换先前使用的命令 word replacement 似乎只替换了第一场比赛 有没有一些set我无法选择的选项 尝试这个 echo oneone oneone gs one two Rep
  • 在 bash 中添加(收集)退出代码

    我需要依赖于脚本中的几个单独的执行 并且不想将它们全部捆绑在一个丑陋的 if 语句中 我想使用退出代码 每次执行并添加它 最后 如果这个值超过阈值 我想执行一个命令 伪代码 ALLOWEDERROR 5 run something RESU
  • 如何使用 docker ENTRYPOINT 与 shell 脚本文件组合参数

    我编写 shell 脚本文件并将其与 docker ENTRYPOINT 一起使用 但是当我运行 docker image 时 由于入口点代码行 它只是停止而没有任何错误日志 我的 Dockerfile FROM ubuntu 16 04
  • 通过 bash 命令设置 gitlab-ci.yml 变量

    variables CUSTOM NODE VERSION cat nvmrc 我想要变量CUSTOM NODE VERSION通过内容填充 nvmrc文件 位于项目根目录中 如何在gitlab ci yml file 上面的例子不起作用
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • bash 子 shell 中出现陷阱“kill 0”的分段错误

    我正在尝试编写一个并行构建多个 Dockerfile 的小脚本 但是如果我想取消该脚本 我也想杀死子进程 这样做的结果是segmentation fault 不知道为什么 为了澄清我正在杀死脚本 C trap kill 0 SIGINT S
  • shell中如何分割字符串

    我有一个变量作为 string ABC400p2q4 我怎样才能分开ABC400 and p2q4 我需要将它分成两个变量 结果我得到 echo var1 ABC400 echo var2 p2q4 可以用任何字母字符代替 ABC 可以用任
  • 使用 SIGINT 默认处理程序时从 system() 返回值

    我遇到了一些奇怪的返回值system 当子进程从终端接收到 SIGINT 时 解释一下 从 Perl 脚本parent pl I used system 运行另一个 Perl 脚本作为子进程 但我还需要通过 shell 运行子进程 所以我使
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下

随机推荐

  • Linux统计某文件夹下文件、文件夹的个数

    http blog sina com cn s blog 464f6dba01012vwv html 统计某文件夹下文件的个数 ls l grep wc l 统计某文件夹下目录的个数 ls l grep wc l 统计文件夹下文件的个数 包
  • 瞧瞧,这样的「函数」才叫 Pythonic

    在机器学习中 我们经常需要使用类和函数定义模型的各个部分 例如定义读取数据的函数 预处理数据的函数 模型架构和训练过程的函数等等 那么什么样的函数才是漂亮的 赏心悦目的代码呢 本期教程 会从命名到代码量等六方面探讨如何养成美妙的函数 文末有
  • Python之序列

    序列是一种数据存储方式 用来存储一系列的数据 在内存中 序列就是一块用来存放多个值的连续空间 比如一个整数序列 10 20 30 40 可以这样表示 由于Python3中一切皆对象 在内存中实际是按照如下方式储存的 a 10 20 30 4
  • windows自带虚拟机无法正确安装软件 解决方案

    使用的虚拟机版本Ubuntu 20 04 4 LTS 错误描述 ruby DESKTOP LP8NQUK tmp test sudo apt install imagemagic 6 q16 sudo password for ruby R
  • Linux如何用ftp传输文件【ftp命令】

    Linux如何用ftp传输文件 ftp命令 Windows Linux 带端口的ftp命令 使用 FTP 下载文件 使用 FTP 上传文件 关闭FTP连接 Windows 在Windows系统中 可以用可视化的ftp来传输文件 或者下在文件
  • 第二章:25+ Python 数据操作教程(第八节如何从 PANDAS DATAFRAME 中删除一列或多列)

    在本教程中 我们将介绍如何从 pandas 数据框中删除或删除一个或多个列 是一个用于数据操作的 python 包 它具有以下数据任务的几个功能 目录 在 python 中删除一列 在 Python 中删除多列 如何从 pandas Dat
  • tp5 使用_initialize做验证时验证失败不能直接返回数据和打断程序运行

    在项目开发时写了一个基类 让其他控制器都继承这个类 当访问控制器时基类某些验证时 直接截断返回错误不执行控制器中的解决办法 失败写法 return json encode data 正确写法 echo json encode data ex
  • 利用XSS获取cookie

    如果web应用在用户输入的地方没有过滤特殊字符 比如 lt gt
  • MapReduce思想的学习

    这学期教hadoop 发现在备课MapReduce思想的时候 查阅资料基本上所有博客都没有真正讲出MapReduce的思想 而只是把它的计算过程讲出来 甚至有些说法还是误人子弟的 所以我就一直在想如何能把MapReduce的思想讲得通俗易懂
  • 大数据应用——zookeeper集群部署

    本地模式安装 安装前准备 1 安装 JDK 拷贝 apache zookeeper 3 5 7 bin tar gz 安装包到 Linux 系统下 解压到指定目录 hadoop hadoop101 software tar zxvf apa
  • 编译警告"struct declared inside parameter list"

    近来在阅读linux 2 6 37中cgroup的相关代码 读到include linux cgroup h的开头时犯了嘀咕 include
  • laravel基础学习笔记--Blade 模板

    laravel基础学习笔记 Blade 模板 Blade 视图文件都将被编译成原生的 PHP 代码并缓存起来 除非它被修改 否则不会重新编译 这就意味着 Blade 基本上不会给你的应用增加任何负担 Blade模板 section side
  • 2021华为杯数学建模B题“空气质量预报二次建模” 预处理思路+Python代码

    简介 前阵子和小伙伴做了2021年华为杯研赛的B题 空气质量预报二次建模 发现数据预处理一块挺有意思的 涵盖了常规的缺失值 随机缺失 指标缺失 列缺失 条目缺失 行缺失 异常值 偏离正态分布 非负数据为负 以及不常规的协同处理等 一直想着有
  • Ubuntu 16.04 手动用 apt-get 在线安装 Redis 5.0 最新版

    目录 安装 Redis 添加 Redis 源 开始安装 Redis 启动 Redis 常用基本命令 配置 Redis 密码 修改配置文件 设置 Redis 密码 测试 Redis 密码 Redis 全称 REmote DIctionary
  • angular 小试

    测试token var app angular module myApp ngRoute 构造拦截器 添加token信息 3 app config function httpProvider 构造拦截器 var intercepter fu
  • 如何在 Gmail 中启用不太安全的应用程序设置

    在Google帐户中 启用不太安全的应用程序功能可以使黑客更容易进入您的帐户 一般来说 Gmail 用户在使用其帐户通过 Google STMP 服务器发送电子邮件时启用此功能 我们从不建议启用此功能 但在某些情况下 有必要在 Gmail
  • 确保网站安全的 5 个最佳 WordPress 安全插件

    由于 WordPress 的巨大受欢迎 难怪它引起了黑客的兴趣 WordPress 拥有自己的安全措施 这些措施会通过自动更新功能不断更新 但这就足够了吗 如果您确实想确保您的 WordPress 网站安全 您应该研究 WordPress
  • 如何在 Ubuntu 20.04 上安装 OpenOffice

    Apache OpenOffice 是一个开源办公应用软件套件 可用于基于 Unix 的系统 您可以自由使用文档 电子表格 演示文稿和绘图软件 OpenOffice 是由 Apache 基金会构建的一个项目 提供最新的功能和安全更新 本教程
  • PHP – 获取查询字符串值 ($_SERVER['QUERY_STRING'])

    查询字符串是通过 Web 浏览器访问的 url 的一部分 使用查询字符串 我们将参数传递给网页 通过本文 我们将帮助您了解如何使用 php 脚本获取查询字符串的值 获取查询字符串 我们可以从以下位置获取 url 查询字符串值 SERVER数
  • Bash 连接字符串

    在 Bash 中连接字符串就像将它们与双引号 特点 但是 如果您的字符串包含多个单词或包含特殊字符 您可能需要使用不同的方法 幸运的是 Bash 编程语言提供了多种连接字符串的方法 本文探讨了在 Bash 脚本和程序中组合字符串的五种常见方