首页 > 其他分享 >如何在 alias 命令中使用单引号

如何在 alias 命令中使用单引号

时间:2024-06-05 10:12:19浏览次数:14  
标签:命令 双引号 单引号 111111 alias 引用

问题

在 Linux 中,alias 可以用来给需要输入很长一串字符的命令创建一个快捷方式,比如我们常见的 ll 命令实际上就等于 ls -l

alias ll='ls -l'

定义时,需要用单引号将命令包裹起来,如果命令本身就包含单引号,该怎么处理才能让系统正确识别呢?比如下面的命令:

alias rxvt='urxvt -fg '#111111' -bg '#111111''

你可能会想,换成双引号来包裹。但是如果用双引号,其中的内容会被转义解释成具体获得的值。而不是命令本身。而且,如果命令即包含双引号,也包含单引号,那么这种方式就行不通了。

解决方案

如果确实想在外层使用单引号,那么可以粘贴两种引号,比如:

 alias rxvt='urxvt -fg '"'"'#111111'"'"' -bg '"'"'#111111'"'"
 #                     ^^^^^       ^^^^^     ^^^^^       ^^^^
 #                     12345       12345     12345       1234

为什么 '"'"' 会被解释为 '?

首先看一下系统解释这段命令的过程:

  1. ' 结束命令开始的单引号到当前单引号的内容

  2. " 开始新的引用,并使用双引号,以保证接下来的引用会被直接解释成具体的值

  3. ' 代表被引用的值,也就是我们期望的单引号

  4. " 结束第 2 步的引用

  5. ' 开始新的引用,使用单引号

在这里,如果有两个连着的单引号引用,会被视为一个命令,比如:

$ echo 'abc''123'  
abc123

而使用了 '"'"' 的方式,则中间的单引号会被视为一个字符而不是起始的位置:

$ echo 'abc'"'"'123'
abc'123

参考

  1. bash - How to escape single quotes within single quoted strings - Stack Overflow

标签:命令,双引号,单引号,111111,alias,引用
From: https://www.cnblogs.com/kingron/p/18232400

相关文章

  • Linux常用命令及说明,配图
    一、Linux的目录结构1.Linux操作系统的目录结构Linux的目录结构是一个树型结构Windows系统可以拥有多个盘符,如C盘、D盘、E盘Linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面2.Linux路径的描述方式在Linux系统中,路径之间的层级关系,使用:/来表示(快速区分......
  • Linux基础命令
    常用的Linux命令pwd命令作用:查看当前在哪个目录:pwd输出:ls命令作用:列出当前目录下的内容:ls#列出文件夹下的内容ls-a#列出文件夹下的内容,包括隐藏的文件ls-l#列出文件夹下的内容,以列表的形式ls-al#以列表形式,列出当前文件夹下的所有内......
  • 数据库知识点和一些命令以及使用步骤
     一、基本命令:(1)连接本地数据库服务:mysql-uroot-p(2)连接其它电脑上的数据库服务:mysql-hip地址-uroot-p(3)在连接数据库服务时直接选择库:mysql-D库名-uroot-p(4)退出数据库服务:exit或quit或\q二、使用步骤:1、链接数据库服务2、创建一个数据库—>选择库3、设......
  • 【VS Code使用】仅当从 VS 开发人员命令提示符处运行 VS Code 时,cl.exe 生成和调试才
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、前言......
  • 在SQL中,如果你想从某个表的某列中去除所有的单引号(')
    在SQL中,如果你想从某个表的某列中去除所有的单引号('),你可以使用REPLACE函数。REPLACE函数允许你搜索一个字符串中的特定子字符串,并用另一个字符串替换它。假设你有一个名为my_table的表,并且你想从名为my_column的列中去除所有的单引号,你可以使用以下SQL语句:sqlUPDATEmy_table......
  • 如何阅读 diff 命令的输出
    diff命令有三种模式:上下文模式(context),合并模式(unified)和普通模式(normal)。其中最常用的是合并模式。合并模式diff-uf1f2---f1 2024-03-1121:08:41+++f2 2024-03-1121:08:40@@-3,7+3,7@@345-6+66789第一部分表示文件名和时间---f1 2024-03-11......
  • 命令行压缩工具用法
    tar归档#创建一个未压缩的tar归档文件#其中,`-c`表示创建归档文件,`-v`表示显示详细信息,`-f`表示指定归档文件名。tar-cvfarchive.tarfile1file2dir1#创建一个使用gzip压缩的tar归档文件#其中,`-z`表示使用gzip压缩。tar-czvfarchive.tar.gzfile1fi......
  • linux命令ping
    ping命令[root@iwopt]#ping172.1.1.3PING172.1.1.3(172.1.1.3)56(84)bytesofdata.64bytesfrom172.1.1.3:icmp_seq=1ttl=123time=16.8ms64bytesfrom172.1.1.3:icmp_seq=2ttl=123time=16.4msbytes:ping命令用于检测网络上另一台计算机是否可达。当你执......
  • Windos bat批处理脚本,判断是终端命令行运行,还是双击运行
    前言全局说明判断是终端命令行运行,还是双击运行一、说明二、文件名:t_echo.bat@echooffecho%CMDCMDLINE%|find"/c">nulif%errorlevel%equ0( echo. echo[INFO]脚本%~nx0是双击运行 echo. pause)else( echo. echo[INFO]脚本%~nx0在命令行......
  • SQLmap常用命令使用详解
    SQLmap使用详解 一、SQLmap常规使用步骤1、查询注入点pythonsqlmap.py-v3-uhttp://127.0.0.1/sqli-labs/Less-1/?id=12、查询所有数据库pythonsqlmap.py-v3-uhttp://127.0.0.1/sqli-labs/Less-1/?id=1--dbs3、查询当前数据库pythonsqlmap.py......