codecamp

Bash 拼接字符串

字符串的拼接是任何一种编程语言的硬性通用要求之一。在 shell 中字符串的拼接十分简单,但仍然需要注意细节上的处理。

基本语法

str3="${str1}${str2}

注:
- {}作用为帮助解释器识别变量边界。
- 在此出于严谨考虑,最好应养成随手添加{}的习惯,避免疏忽导致脚本执行效果未达到您的期望。

示例

#!/bin/bash


str1="welcome to"


str2=" W3Cschool."


str3="${str1}${str2}"
str4="Hello user,${str1}${str2}"


echo $str3
echo $str4

注:
- 在此出于严谨考虑,最好应养成随手添加 " "的习惯,避免疏忽导致脚本执行效果未达到您的期望。
- 在代码第8行,若不以 " "将整个语句引起,解释器在遇到空格时将会视为字符串结束,空格之后的内容将作为其他变量或命令进行解析。

执行后得到以下结果:

welcome to W3Cschool.
Hello user,welcome to W3Cschool.

支撑扩展
请参阅:支撑扩展

echo {A,B}.js
{A,B}   与...一样 A B
{A,B}.js    与...一样 A.js B.js
{1..5}  与...一样 1 2 3 4 5

外壳执行
请参阅:命令替换

echo "I'm in $(PWD)"
## Same
echo "I'm in `pwd`"

Bash 参数扩展

句法

${FOO%suffix}   删除后缀
${FOO#prefix}   删除前缀
${FOO%%suffix}  去除长后缀
${FOO##prefix}  删除长前缀
${FOO/from/to}  替换第一场比赛
${FOO//from/to} 全部替换
${FOO/%from/to} 替换后缀
${FOO/#from/to} 替换前缀

子串

${FOO:0:3}  子串(位置,长度)
${FOO:(-3):3}   右边的子串

长度

${#FOO} 的长度 $FOO

默认值

${FOO:-val} $FOO, 或者val如果未设置
${FOO:=val} 如果未设置$FOO,val则设置为
${FOO:+val} val如果$FOO设置
${FOO:?message} 如果$FOO未设置,则显示消息并退出
Bash 提取子字符串
Bash 函数
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }