ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux命令行中参数中引号的使用

2022-03-26 06:00:52  阅读:337  来源: 互联网

标签:zlf 20 引号 28 rw 2021 命令行 Linux pdf


Linux 中默认的解释器一般是bash,有时希望将特殊符号作为标准输入送入bash解释,此时可能会产生些困惑。

具体分参数有无引号包裹这两种情况,以echo和ls命令为例:

$ ls -hal
total 222M
drwxrwxr-x 2 zlf zlf 4.0K Mar 26 04:46  .
drwxrwxr-x 5 zlf zlf 4.0K Dec  6 19:26  ..
-rw-rw-r-- 1 zlf zlf  20M Nov 28 20:56  barrons_20211129.pdf
-rw-rw-r-- 1 zlf zlf 128M Nov 28 20:56 'Forbes USA 10.11 2021.pdf'
-rw-rw-r-- 1 zlf zlf  40M Nov 28 20:56  The_Economist_UK_Edition_-_November_27_2021.pdf
-rw-rw-r-- 1 zlf zlf  36M Nov 28 20:56  Vogue_USA_-_November_2021.pdf

1. 命令后的参数无引号:

$ echo *.pdf
barrons_20211129.pdf Forbes USA 10.11 2021.pdf The_Economist_UK_Edition_-_November_27_2021.pdf Vogue_USA_-_November_2021.pdf
$ ls -hal *.pdf
-rw-rw-r-- 1 zlf zlf  20M Nov 28 20:56  barrons_20211129.pdf
-rw-rw-r-- 1 zlf zlf 128M Nov 28 20:56 'Forbes USA 10.11 2021.pdf'
-rw-rw-r-- 1 zlf zlf  40M Nov 28 20:56  The_Economist_UK_Edition_-_November_27_2021.pdf
-rw-rw-r-- 1 zlf zlf  36M Nov 28 20:56  Vogue_USA_-_November_2021.pdf

2. 命令后的参数带引号:

$ echo "*.pdf"
*.pdf
$ ls -hal "*.pdf"
ls: cannot access '*.pdf': No such file or directory

不难得出结论:

当命令后的参数无引号时,命令在送入bash解释时默认开启了通配模式,所以不带符号的参数*.pdf可以匹配目录下所有pdf文件。

当命令后的参数带引号时,bash分析引号内的参数不会开启通配模式,echo将引号内的命令原模原样打印到标准输出。

同时,参数被单引号和双引号包裹后情况也不同:

双引号包裹参数:

$ var1="HELLO"
$ echo "$var1"
HELLO

单引号包裹参数:

$ var1="HELLO"
$ echo '$var1'
$var1

这就很显然了,双引号会解释变量,单引号不做解释。

总结一下:

无引号,正则,解释变量

双引号,不正则,解释变量

单引号,不正则,不解释变量

没有正则但是不解释变量的情况,因为$\$可以区分参数是否为变量

标签:zlf,20,引号,28,rw,2021,命令行,Linux,pdf
来源: https://www.cnblogs.com/funnychip796/p/16057554.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有