func(""123",'456',789) 去除函数中的参数每个参数最外层的" "和' ' 也就是""123",'456'经过处理之后返回"123,456。 上菜!
/bin/bash # 转义 # 跟其他编程语言里的转义一样,使用转义符 \ echo \# 使用转义输出注释符号 \# Dollar=123 echo \$Dollar is $Dollar echo..." # 带不带双引号看起来一样,但是对于输出空格有区别 VAR="A B C" echo 不带引号对于连续空格只输出一个:$VAR echo "带引号会把所有空格输出:$VAR" #...echo '转义符在单引号内输出 \,单引号只把内容作为字面量输出' echo '转义符不能用,单引号内不能输出单引号' # `` 反引号:命令替换,将命令的标准输出作为值赋给某个变量 # 命令替换也可以使用...脚本的第一个参数,第二个参数... # $# 变量总数 # $* $@ 显示所有参数 # $? 前一个命令的退出的返回值 echo $?...获取上一条指令的返回值 # 函数参数 # 与脚本的参数使用一致 func4 () { echo "第一个参数 $1" echo "第二个参数 $2" echo "所有参数 $@" echo
类似地,不带双引号的文本也可以得到同样的输出结果: [root@entel1 ~]# echo welcome to the blog of Bash welcome to the blog of Bash...,那就不要将其放入双引号中,或者你可以在其之前加上个特殊的转义字符(\)将!转义,就像这样: [root@entel1 ~]# echo hello world ! hello world !...#将转义字符放在前面 hello world \! 每种方法的副作用: 使用不带引号的echo时,没法在所要显示的文本中使用分号(;),因为分号在Bash shell 中被用作命令定界符。...使用单引号时,变量不会被扩展(expand),将依照原样显示。...在echo中转义换行符 在默认情况下, echo会将一个换行符追加到输出文本的尾部。可以使用选项-n来忽略结尾的换行符。 echo同样接受双引号字符串内的转义序列作为参数。
,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。...但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数...Shell中的替换 转义符: 在echo中可以用于的转义符有: image 使用 echo 命令的 –E 选项禁止转义,默认也是不转义的; 使用 –n 选项可以禁止插入换行符; 使用 echo...image Shell中的字符串 单引号的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的; 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。...双引号的优点: 双引号里可以有变量 双引号里可以出现转义字符 拼接字符串: country="China" echo "hello, $country" #也可以 echo "hello, "$country
引用的意思是用引号括起一个字符串,以保护字符串中的特殊字符不被shell或shell脚本重新解释或扩展: # 在通配和正则模式中拥有特殊含义的*号在引用中失去了特殊意义 bash$ ls -l [Vv...$ ls -l '[Vv]*' ls: [Vv]*: No such file or directory 但某些程序会重新解释或扩展引号括起的字符串中的特殊字符。...比如某些场景下引号的用途是保护shell命令参数,但仍然允许调用程序扩展特殊字符: bash$ cat file1.txt first name in file1.txt bash$ cat file2...转义 转义是一种引用单个字符的方法,字符前导的转义符\告诉shell解释该字符的字面含义。 某些指令如echo, sed,对字符转义可能拥有相反的效果,它会触发该字符的特殊含义。...形式的字符串扩展结构是一种使用转义八进制或十六进制值分配ASCII字符给变量的机制。
转义 某些字符在bash中含有特殊含义:针对这些需要转义。 在echo中要打印不可打印的字符时,要增加-e参数。...,所以如果单引号之中,还要使用单引号,不能使用转义,需要在外层的单引号前面加上一个美元符号($),然后再对里层的单引号转义。...也就是说,这三个字符在双引号之中,会被 Bash 自动扩展。...注意,test命令内部的>和引号引起来(或者是用反斜杠转义)。否则,它们会被 shell 解释为重定向操作符。...,必须使用引号或者转义,否则会被 Bash 解释。
Shell Shell脚本文件的扩展名为.sh(sh代表shell) 2、第一个Shell程序 #!...echo加了-e默认会换行 echo arg > myfile #显示结果重定向至文件,会生成myfile文件 注意: echo后单引号和双引号作用是不同的 单引号不能转义里面的字符,双引号可有可无,单引号主要用在原样输出中...$* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同 $? 上个命令的退出状态,或函数的返回值。 $$ 当前Shell进程ID。...* 和 @ 的区别: * 和 @ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"1" " 但是当它们被双引号(" “)包含时,”2 … n"的形式输出所有参数;“@” 会将各个参数分开...${var:+word} 如果变量 var 被定义,那么返回 word,但不改变 var 的值。 7、Shell脚本样例 下面的脚本用于php安装过程中安装zip扩展: #!
/bin/bash,运行/bin/bash来执行脚本 运行方式 将脚本作为bash的命令行参数 bash script.sh 授予脚本执行权限,变成为可执行文件 相对路径 chmod a+x script.sh...echo 命令 使用规则 在默认情况下,echo在每次调用后会添加一个换行符 使用不带引号的echo时,无法在所要显示的文本中使用分号;,因为分号被用作命令定界符 使用双引号的时候,遇到特殊字符的时候需要转义字符...\进行转义,而在单引号中则不用 变量替换在单引号中无效,如${username}等 转义字符 \a 发出警告声 \b 删除前一个字符 \c 最后不加上换行符号 \f 换行但光标仍旧停留在原来的位置 \...在 Bash 中,每一个变量的值都是字符串 无论你给变量赋值时有没有使用引号,值都会是字符串的形式存储的 环境变量就是用来被 shell 环境和操作系统环境用来存储一些特殊值的变量 查看环境变量 所有与终端相关...~/.bashrc中即可 prepend() { [ -d "$2" ] && eval $1=\"$2':'\$$1\" && export $1; } 判断第二个参数指定的目录是否存在 将第一个参数所指向的变量值设置成为第二个参数的值加上
双引号包围的内容可以允许变量扩展,也允许转义字符的存在。如果字符串内出现双引号本身,需要转义,因此不一定双引号是成对的。 ' 单引号(full quoting [single quote])。...引用内容展开,执行单引号内的转义内容(单引号原本是原样引用的),这种方式会将引号内的一个或者多个[\]转义后的八进制,十六进制值展开到ASCII或Unicode字符。...注意的一点是,这花括号扩展中不能有空格存在,如果确实有必要空格,则必须被转义或者使用引号来引用。...引用内容展开,执行单引号内的转义内容(单引号原本是原样引用的),这种方式会将引号内的一个或者多个[\]转义后的八进制,十六进制值展开到ASCII或Unicode字符。...注意的一点是,这花括号扩展中不能有空格存在,如果确实有必要空格,则必须被转义或者使用引号来引用。
除了输出所有的环境变量外,使用不带参数的 set 命令还会输出当前环境所有的函数。 2.4 本地环境变量 本地环境变量只能在函数内部被定义和使用,它们只能在定义它们的函数内部以及子函数中可见。 3....,能够覆盖 LANG 变量 LC_COLLATE 设置对字符串排序时用的排序规则 LC_CTYPE 决定如何解释出现在文件名扩展和模式匹配中的字符 LC_MESSAGES 在解释前面带有 $ 的双引号字符串时...$@ 用双引号括起后,将所有命令参数当作字符串中的多个独立单词保存,即看作多个个体 $?...6.3 $* 当 * 未用双引号括起时,即 *:将所有位置参数扩展成独立的多个个体,而且若出现用引号括起的参数时,则会将引号忽略来看待。...declare 命令不带任何参数时,输出当前环境所有的环境变量和函数,等同于不带任何参数的 set 命令。
1.函数可以设置参数默认值 1 function test1(x,y=1){ 2 console.log(x,y) 3 } 4 test1(10)//10 1 2.rest参数.....b){ 2 for(let i of b){ 3 a+=i 4 } 5 console.log(a) 6 } 7 // 说明传入的参数是一个一个的传入...function test3(a,...b,c){}//Uncaught SyntaxError: Rest parameter must be last formal parameter 功能形如 “rest参数的逆运算...”: 1 function test21(a,b){ 2 console.log(a+b) 3 } 4 // ...后面跟上数组好比是rest参数的逆运算 5 test21...注意:箭头函数中this指向的是定义时所在的对象,不同于普通函数this指向的是运行时所在对象 1 function Test10(){ 2 this.name='apple', 3
要解决的问题:从浏览器复制出来的headers/参数样式User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (...KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36Referer: https://www.google.com.hk/想要在Python中能用,需要改成字典的样式...,给每个字段名和字段值加单引号,达到如下样式(可以直接复制到python字典当中)'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit.../参数选中要替换的内容在pycharm按ctrl+R调出搜索、替换,在搜索框输入(.*?)...*按钮(Regex), 在替换框输入'$1':'$2', 点击Replace All执行替换替换之后的内容:
当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理...注意,硬转义中不允许出现’(单引号)。...“”(双引号) 又叫软转义,其内部只允许出现特定的shell 元字符:$用于参数代换 `用于命令代替 \(反斜杠) 又叫转义,去除其后紧跟的元字符或通配符的特殊意义。...也就是说,双引号 只经过参数扩展、命令代换和算术代换就可以送入执行步骤,而单引号转义符直接会被送入执行步骤。...而且,无论是双引号转义符还是单引号转义符在执行的时候能够告诉各个命令自身内部是一体的,但是其本身在执行时是并不是命令中文本的一部分。
,也可以使用双引号,也可以不使用引号 单引号和双引号的区别(不加引号和双引号相同) 单引号中的内容会原样输出,不会执行,不会取变量(即不会转义),即没有使用&符号取值 双引号中的内容可以执行,可以取变量...(不包括文件名) $*:由所有参数构成的用空格隔开的字符串,整体为字符串用双引号括起来 $@:每个参数分别用双引号括起来的字符串(@和*都是取所有的意思) $$:脚本当前运行的进程ID $?...,发现表达式运行错误时,可以试试转义 包含空格和其他特殊字符的字符串要用引号括起来 expr会在stdout中输出结果,如果结果为真,stdout为1,否则为0 expr也有exit code返回值...):如果第一个值不是0,则会返回第一个值,第二个值不会计算,如果第一个参数非空并且非0,则会返回第一个参数的值 & 与 (c++中是&&,少一半):如果第一个值是0,则不会计算第二个值(短路特性),如果都非空并且非...= == = 比较两端的参数,如果为true则返回1,否则返回0,expr首先尝试将两端的参数转换为整数,并做算数比较,如果转换失败,则按字符集排序规则做字符比较(strcmp) 需要转义的:*、()、
所有的函数注释应该包含: 函数的描述 全局变量的使用和修改 使用的参数说明 返回值,而不是上一条命令运行后默认的退出状态 例如: #!...、命令替换符、空格或shell元字符的字符串 在有明确要求必须使用无引号扩展的情况下,可不用引号 字符串为单词类型时才推荐用引号,而非命令选项或者路径名 不要对整数使用引号 特别注意 [[ 中模式匹配的引号规则...characters*)$' ${1:+"$1"} # 示例10:位置参数传递推荐带引号的"$@",所有参数作为单字符串传递用带引号的"$*" # content of t.sh func_t() {...因反引号如果要嵌套则要求用反斜杠转义内部的反引号。而 (command) 形式的嵌套无需转义,且可读性更高。...当目录中有特殊文件名如以 - 开头的文件时,使用带路径的扩展通配符 ./* 比不带路径的 * 要安全很多。
脚本被被执行由两种方式: 将脚本作为sh命令的参数 作为独立的可执行文件执行 作为 sh 命令的参数时,脚本中的"#!/bin/bash"存在与否变得不重要。.../bash_script.sh 或 /tmp/bash_script.sh 引号和转义 关于 echo 的用法,主要就是注意区分单引号和双引号的特殊情况。...echo Hello,world; Hello,world #分号作为断行符被忽略了 目前这种情况下,使用单引号,可以输出分号,但是无法扩展变量,使用双引号又无法输出感叹号,所以 echo 命令克服各种疑难杂症的方法是...world 转义 echo 使用 -e 选项,识别参数中的特殊意义符号。 echo 'Hello world!\n';echo "Hello world"! Hello world!...在 bash 中,使用预定义变量 $? 判断命令是否成功执行,如果"$?"的值为0则表示前一条命令正确执行,其他任意退出值均表示不能正确执行。
/bin/bash 命令不能和注释在同一行上,也就是注释的后面 ; 命令分隔符,可以在同一行上写多个命令 某些情况需要使用转义符转义 ;; 双分号,终止case选项 . bash内置命令 1.点(...4.正则表达式中作为匹配任何的单个字符 " " 双引号表示字符串 ' ' 单引号表示字符 , 逗号操作符 链接一系列操作 \|反斜杠(\)|对单个字符的引用机制|一般用来转义双引号(" "...$1是第1参数、$2是第2参数、…、$n表示第n个参数。⚠️注意:10以上要用大括号,如{10}。 $? 最后运行命令的结束代码(返回值),执行成功返回0,不成功则返回非零值(一般解释为错误码)。...$# 添加到Shell的参数个数 $* 和 $# 的区别: 不被双引号包含时,两者没有区别。 当被双引号包含时, $* 是将所有参数看作一整个数据。而 $# 则是将每个参数看作一个数据。...Bash变量:不区分类型,都是字符串,不允许进行数值计算,除非变量中包含数字。 如果变量的值中间有空格,则使用引号(单引号或双引号均可)扩起来。 5.4 环境变量 会影响用户接口和shell的行为。
(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。...双引号的优点: 双引号里可以有变量; 双引号里可以出现转义字符。...} echo "-----函数开始执行-----" demo echo "-----函数执行完毕-----" 可以带 function fun() 定义,也可以直接 fun() 定义,不带任何参数。...在函数体内部,通过 $n 的形式来获取参数的值,例如,$1 表示第一个参数,$2 表示第二个参数... 带参数的函数示例: #!.../t.sh 1 2 3 3 通过转义符 “|” 与 $# 结合,可以动态的获取最后一个参数。
单引号与双引号字符串 单引号字符串限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的; 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用...双引号字符串优点: 双引号里可以有变量; 双引号里可以出现转义字符,Shell脚本程序字符型建议都用双引号。...后台运行的最后一个进程的ID号 $* 以一个单字符形式显示所有向脚本传递的参数,” 12 … $n”的形式输出所有参数 $@ 与相同,但是使用时加引号,并在引号中返回每个参数。...如∗相同,但是使用时加引号,并在引号中返回每个参数。如”@”用「”」括起来的情况、以”1″”2″ … “$n” 的形式输出所有参数。 $- 显示Shell使用的当前选项,与set命令功能相同。 $?...定义,不带任何参数。
7 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 8 * 作为匹配文件名扩展的一个通配符,能自动匹配给定目录下的每一个文件。...关于上面的特殊变量的几个知识点: (1)$@与$*的区别? $@和$*都表示脚本或者函数传入的参数,不被双引号”“包含时,都以$1 $2 … $n的形式输出所有参数。...但是当它们被双引号”“包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数。...单引号括住的内容,被视为常量字符串,引号内的禁止变量扩展,并且单引号字符串中不能出现单引号(对单引号使用转义符后也不行) echo '$PATH';#输出$PATH 46 “” 两个双引号。...双引号包围的内容可以允许变量扩展,可以包含双引号,但需要转义。 echo '$PATH;#输出环境变量PATH的内容 2.5功能符 功能符号,我在这里把它分为两类。
领取专属 10元无门槛券
手把手带您无忧上云