Linux命令行中参数中引号的使用
2022/3/26 7:22:37
本文主要是介绍Linux命令行中参数中引号的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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
这就很显然了,双引号会解释变量,单引号不做解释。
总结一下:
无引号,正则,解释变量
双引号,不正则,解释变量
单引号,不正则,不解释变量
没有正则但是不解释变量的情况,因为$
和\$
可以区分参数是否为变量
这篇关于Linux命令行中参数中引号的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法