Linux Gvim shell 替换:变量替换,命令替换,转义字符

本文深入讲解Shell脚本的基础知识,包括变量替换、命令替换、转义字符的使用及示例,帮助读者理解并掌握Shell脚本的核心概念。

替换:如果表达式中含有特殊字符,shell会进行替换。例如在双引号中使用变量就是一种替换。转义字符也是一种替换

#!/bin/bash

a=10
echo -e "Value of a is ${a} \n"

#-e表示对转义字符替换,不加的话输出如下#

echo "Value of a is ${a} \n"

转义字符替换

下列转义字符可用于echo

1.        \\       反斜杠        
2.     \a      警报,响铃 ?
3.     \b      退格 (删除键)?
4.     \f       换页,将当前的位置移到下页开头
5.     \n      换行
6.     \r       回车
7.     \t       一个缩进
8.     \v        垂直制表符 ?

示例如下:

1 echo -e "Value of a is ${a} \\"
2 echo -e "Value of a is ${a} \t ${a}"

可以使用 echo 命令的 -E 选项禁止转义,默认也是不转义的;使用 -n 选项可以禁止插入换行符


命令替换

shell先执行命令,将输出结果暂时保存,在适当的地方输出
语法    `command`   ``是Esc下面那个

示例如下:

1 DATE=`date`
2 echo "Date is ${DATE}"
3 
4 USERS=`who | wc -l`
5 echo "Logged in usr are $USERS"
6 
7 UP=`date ; uptime`
8 echo "Uptime is ${UP}"

 

变量替换

可以根据变量的状态(空?定义?)来改变它的值
可以使用的变量替换形式如下
1.      ${var}                变量原本的值
2.      ${var:-word}         如果变量var为空或已被unset,那么返回word,但不改变其值
3.      ${var:=word}        如果变量var为空或已被unset,那么返回word,并将其值设为                word
4.      ${var:?message}      如果变量var为空或已被unset,那么将message送到标准错误输               出,可以用来检测变量var是否可以被正常赋值
                           若此替换出现在shell脚本中,那么脚本将停止运行        
6.      ${var:+word}        如果变量var被定义,那么返回word,但不改变其值

示例如下:

 1 echo ${var:-"Variable is not set"}
 2 echo " 1-Value of var is ${var} "
 3 
 4 unset var
 5 echo ${var:+"This is default value"}
 6 echo "3-Value of var is ${var}"
 7 
 8 echo ${var:="Variable is not set"}
 9 echo " 2-Value of var is ${var} "
10 
11 var="ChenMo"
12 echo ${var:?"Print this message"}    #把ChenMo输出终端#
13 echo "4-Value of var is ${var}"
14 
15 var="Matto"
16 echo ${var:+"This is default valus"}
17 echo "Value of var is ${var}"

 

 





 

 

 





 

转载于:https://www.cnblogs.com/blog4matto/p/5565033.html

### 在 Linux 中使用 Gvim 进行字符替换时处理目标字符包含斜杠的方法 在 Gvim 或 Vim 中,如果需要替换的字符串中包含斜杠(`/`),可以采取以下方法来避免冲突或错误。Gvim替换命令支持多种分隔符,因此可以使用其他符号代替默认的斜杠作为分隔符[^3]。 例如,当需要将字符串 `/home/user/` 替换为 `/root/user/` 时,可以使用以下方法: #### 方法一:使用同的分隔符 Gvim替换命令允许使用除斜杠以外的符号作为分隔符,如 `#` 或 `+`。这样可以避免与目标字符串中的斜杠冲突。 ```vim :%s#/home/user/#/root/user/#g ``` 上述命令使用了 `#` 作为分隔符,从而避免了与目标字符串中的斜杠发生冲突[^3]。 #### 方法二:对斜杠进行转义 如果坚持使用斜杠作为分隔符,则需要对目标字符串中的每个斜杠进行转义,使用反斜杠(`\`)将其标记为普通字符。 ```vim :%s/\/home\/user\//\/root\/user\//g ``` 上述命令中,每个斜杠都被转义为 `\/`,以确保 Gvim 正确解析目标字符串[^1]。 #### 方法三:结合正则表达式 在某些复杂场景下,可以结合正则表达式来匹配和替换目标字符串。例如,匹配以 `/home/` 开头并以 `/` 结尾的路径,并将其替换为 `/root/` 路径。 ```vim :%s#\v/home/(.*)/#/root/\1/#g ``` 上述命令中,`\v` 表示启用非常魔法模式(very magic mode),从而简化正则表达式的书写。`(.*?)/` 匹配任意路径部分,`\1` 表示引用第一个捕获组的内容[^3]。 ### 示例代码块 以下是一个完整的示例,展示如何在 Gvim替换包含斜杠的字符串: ```vim " 使用 # 分隔符 :%s#/home/user/#/root/user/#g " 对斜杠进行转义 :%s/\/home\/user\//\/root\/user\//g " 结合正则表达式 :%s#\v/home/(.*)/#/root/\1/#g ``` ### 注意事项 - 如果需要替换的字符串中包含特殊字符(如 `$`、`&` 等),可能需要对其进行额外的转义处理[^1]。 - 在批量替换时,建议先测试单行替换命令是否正确,再扩展到整个文件范围(如使用 `%s`)[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值