精华内容
下载资源
问答
  • 引用文件名的括号
    2021-05-10 16:57:19

    当初自己在学习shell编程的时候,被各种括号的用法搞得头昏脑涨。靠着逐步的熟悉和积累,才终于掌握的所有的括号的用法。现在,把自己总结出来的分享给大家。

    注:看本篇文档的前提是你已经有了bash以及shell编程的基础。

    单小括号()

    但小括号常见的两个作用:命令替换以及数组的初始化

    命令替换

    当碰到$()结构时,shell就把括号的内命令执行,并返回结果# tmp=$(date)

    # echo $tmp

    Fri Sep 18 10:22:30 CST 2020

    初始化数组# 初始化数组

    lnmp=(linux nginx mysql php)

    双小括号(())

    记住双括号有一个特点,就是括号内的要符合c语言的语法,使用变量名时不需要加上$符号的。

    双小括号的用法比较多,它可以用作整数计算(不支持小数)。例如:$((3+2))# echo $((1+3))

    4

    # n1=3

    # echo $((n1+7))

    10

    只要符合c语言语法的运算扩展,都可以写在括号里# echo $((3+4>5 ? 1 :0))

    1

    # echo $((3+4>9 ? 1 :0))

    0

    重新给变量赋值,这个时候不可在括号外加$符# i=1;((i++));echo $i;

    2

    # i=1;((i=100));echo $i;

    100

    双括号还经常用在for循环中for ((i=0;i<5;i++));do echo -n $i;done

    单方括号[]

    单方括号最常见用于逻辑判断中,另外它还可以作为数组的下标,以及在正则中表示一段范围

    shell脚本中用于条件判断:if [ 1 > 2 ] then

    ……

    fi

    也可以作为数组下标:# echo ${lnmp[1]}

    nginx

    在正则中使用,表示一段范围[0-9] 表示数子0-9都行

    双方括号

    和单括号一样,双方括号也用在条件判断中,但它比单方括号更加的通用。下面举一个例子:[ a > b ] && [ a > 0 ]或[ a > b -a a > 0 ]

    改成双括号

    [[ a > b && a > 0 ]]

    单花括号{}

    花括号拓展。(通配(globbing))将对花括号中的文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。

    比如输入命令 rm -f {1,2}.txt将删除1.txt和2.txt文件。

    单花括号中..的作用

    两个点在这里表示一段范围的意思。比如echo {1..10} #将打印1,2,3,4,5,6,7,8,9,10

    花括号还常用在shell脚本里,用于代码块。

    初次之外,单花括号还可以用作变量内容的替换和删除以及变量内容的测试,给出一个常见的例子。我们常常会判断一个变量是否存在,如果不存在,则给该变量设置新值。val=${n1:-test}

    上面代码表示如果n1这个变量不存在或为空,则将val变量值设置为test,否则val值为n1变量的值

    更多相关内容
  • 我正在尝试用熊猫读取Excel文件。...如果我删除方括号并将文件重命名为'abcd Interim Report 01-03-18.xlsx',则可以正常工作。我尝试使用Shutil重命名,但这给了我同样的错误shutil.copyfile('abcd (x...

    我正在尝试用熊猫读取Excel文件。

    df=pd.read_excel('abcd (xyz-9) Interim Report 01-03-18.xlsx')

    这给了我文件找不到错误。如果我删除方括号并将文件重命名为'abcd Interim Report 01-03-18.xlsx',则可以正常工作。

    我尝试使用Shutil重命名,但这给了我同样的错误

    shutil.copyfile('abcd (xyz-9) Interim Report 01-03-18.xlsx','test.xlsx')

    我试过了

    1.pd.read_excel('abcd ^(xyz-9) Interim Report 01-03-18.xlsx')2.pd.read_excel('abcd \\(xyz-9\\) Interim Report 01-03-18.xlsx')

    编辑:

    即使将cwd更改为文件位置,该文​​件似乎也可以在本地驱动器上工作,但不能在网络驱动器上工作。

    关于使用glob和os.path.exists:

    foriinrange(0,1):forfilenameinglob.glob(fpath+"\\"+ldir[i]+"\\"+"*Interim*.xlsx"):print(filename)print(os.path.exists(filename))

    \\Africa-me.xxx.com\Africa-me\xxx\xxx\xxx\xxx\06 xxx\02 xxx, xxx and xxxx xxx\03 xxx\04 xxx\05 xx xx & xx\12 2018 xx\06 xx xxx\\\AAA-61\abcd (xyz-9) Interim Report 01-03-18.xlsx

    False

    \\Africa-me.xxx.com\Africa-me\xxx\xxx\xxx\xxx\06 xxx\02 xxx, xxx and xxxx xxx\03 xxx\04 xxx\05 xx xx & xx\12 2018 xx\06 xx xxx\\\AAA-61\abcd Interim Report 01-03-18.xlsx

    True

    关于使用glob和os.stat:

    importctypesforiinrange(0,1):forfilenameinglob.glob(fpath+"\\"+ldir[i]+"\\"+"*Interim*.xlsx"):print(filename)try:print(os.stat(filename))exceptOSErrorase:ntstatus=ctypes.windll.ntdll.RtlGetLastNtStatus()print('winerror:',e.winerror)print('ntstatus:',hex(ntstatus&(2**32-1)))

    \\Africa-me.xxx.com\Africa-me\xxx\xxx\xxx\xxx\06 xxx\02 xxx, xxx and xxxx xxx\03 xxx\04 xxx\05 xx xx & xx\12 2018 xx\06 xx xxx\\\AAA-61\abcd (xyz-9) Interim Report 01-03-18.xlsx

    winerror: 3

    ntstatus: 0x80000006

    \\Africa-me.xxx.com\Africa-me\xxx\xxx\xxx\xxx\06 xxx\02 xxx, xxx and xxxx xxx\03 xxx\04 xxx\05 xx xx & xx\12 2018 xx\06 xx xxx\\\AAA-61\abcd Interim Report 01-03-18.xlsx

    os.stat_result(st_mode=33206, st_ino=15624813576354602, st_dev=3657573641, st_nlink=1, st_uid=0, st_gid=0, st_size=726670, st_atime=1563172745, st_mtime=1523347973, st_ctime=1563170560)

    解决方案

    该os.stat测试表明,使用括号将路径访问失败,并显示ERROR_PATH_NOT_FOUND(3),这可能是由于缺少路径组件或路径太长。我们知道找到最终路径组件不是问题,因为在这种情况下,我们预计错误为ERROR_FILE_NOT_FOUND(2)。我们知道保留字符不是问题,因为在这种情况下,我们预计错误为ERROR_INVALID_NAME(123)。同样,在这两种情况下,Windows API都必须进行NT系统调用,但是我们看到最后的NT状态是STATUS_NO_MORE_FILES(0x80000006),这是来自的os.listdir调用glob.glob。因此,问题可能在于路径太长。

    为了简洁起见或隐私,问题似乎是将某些路径组件名称缩短为“ xxx”。如果将其扩展为真实名称,我们可能会看到带有“(xyz-9)”的路径至少为260个字符,这比DOS路径允许的最大长度MAX_PATH - 1(259)字符多一。

    我们可以通过将长路径转换为扩展路径来访问它,该扩展路径是一个以“ \\?\”设备路径前缀开头的Unicode字符串,或者为UNC路径为“ \\?\ UNC \”。首先,由于Windows中的字节路径仅限于MAX_PATH字符,因此我们必须解码Unicode的字节路径。接下来,我们必须对路径进行归一化和限定,os.path.abspath因为扩展路径在访问时会绕过归一化。这是extpath将DOS路径转换为扩展路径的函数:

    importostry:fromosimportfsdecodeexceptImportError:# Probably Python 2.ximportsysdeffsdecode(filename):ifisinstance(filename,type(u'')):returnfilenameelifisinstance(filename,bytes):returnfilename.decode(sys.getfilesystemencoding(),'strict')raiseTypeError('expected string, not {}'.format(type(filename).__name__))defextpath(path):path=os.path.abspath(fsdecode(path))ifnotpath.startswith(u'\\\\?\\'):ifpath.startswith(u'\\\\.\\'):path=u'\\\\?\\'+path[4:]elifpath.startswith(u'\\\\'):path=u'\\\\?\\UNC\\'+path[2:]else:path=u'\\\\?\\'+pathreturnpath

    背景

    Windows NT(即XP之后的所有Windows版本)的核心是NTOS操作系统,它使用NT内核。这类似于1980年代和1990年代初期在DOS上分层16位Windows的方式。但是与DOS相比,NTOS与Windows的耦合更为紧密,并且它的功能更强大(例如,支持对称多处理,抢占式多线程,虚拟内存,异步I / O,受保护的对象以及具有同时登录和会话的多个用户)。

    Windows在某些方面仍保持其MS-DOS根目录。特别是,对于磁盘设备和文件系统路径,Windows API使用DOS路径而不是NT对象路径。这包括DOS驱动器“ A:”到“ Z:”以及UNC路径,例如“ \\ server \ share \ path”。Windows API规范化了DOS路径,以将反斜杠替换为反斜杠。使用进程工作目录或每个驱动器工作目录解析相对路径(即,没有根目录或驱动器的路径);解决“。”和“ ..”组件;并修剪最终组件中的尾随空格和点。

    当访问DOS路径时,Windows会将其转换为以WINAPI设备前缀之一“ \\。\”和“ \\?\”(例如“ C:\ Windows”->“ \\? \ C:\ Windows“)。对于驱动器号路径和相对路径(而不是UNC路径),它将在最终路径组件中保留一小组DOS设备名称(例如“ C:\ Temp \ con”->“ \\。\ con”,以及“ nul”->“ \\。\ nul”)。对于UNC路径,它使用“ UNC”设备安装点(例如\\ server \ share \ path->“ \\?\ UNC \ server \ share \ path”)。在呼叫传递到NT域之前,WINAPI设备前缀(“ \\。\”或“ \\?\”)被替换为NTAPI设备前缀(“ \ ?? \”)。

    这些设备名称空间前缀是NT对象名称空间中调用者的本地安装点目录的缩写(即“ \ Sessions \ 0 \ DosDevices \ ”)。本地安装点目录隐式隐藏了全局安装点目录(即“ \ Global ??”)。例如,“ C:\ Temp”变为“ \ ?? \ C:\ Temp”,如果全局“ C:”未局部阴影,则其值为“ \ Global ?? \ C:\ Temp”。可以通过“全局”对象链接(例如“ \\?\ Global \ C:\ Temp”)显式引用全局安装点,该链接应始终可用。

    传统上,DOS路径规范化使用的字符串缓冲区的空间不得超过MAX_PATH(260)个字符。在Windows 10中,如果为系统启用了长路径并且应用程序清单声明它知道长路径,则将取消此旧限制(在大多数情况下)。Python 3.6及更高版本中的“ python [w] .exe”可执行文件具有此清单设置。

    如果未启用长DOS路径,则大多数文件API函数仍支持长路径。我们只需要使用以“ \\?\”前缀开头的WINAPI设备路径,这称为扩展路径。这类似于以“ \\。\”前缀开头的常规设备路径,不同之处在于扩展路径在访问时不会被规范化。缺点是我们必须实现自己的路径规范化。在Python中,这是由实现的os.path.abspath。我们仍然必须手动重写UNC路径,但这很简单,用“ \\?\ UNC \”替换前导的“ \\”。

    请注意,工作目录不支持扩展的设备路径。如果我们将设备路径设置为工作目录,则系统具有未定义的行为。因此,请勿将它们与Pythonos.chdir或cwd参数一起使用subprocess.Popen。这意味着通过将扩展路径设置为工作目录,我们无法绕开使用较长的相对路径的限制。在Windows 10中,如果为该进程启用了长DOS路径,则工作目录确实支持长路径,但是它仍仅支持常规DOS路径(UNC和驱动器字母路径),而不支持设备路径。

    展开全文
  • #include <>格式:引用标准库头文件,编译器从标准库目录开始...#include <stdio> 文件名放在尖括号中 #include “mystuff.h” 文件名放在双引号中 尖括号< 和> 括起来表明这个文件是一个工程或标准头文件。查
  • 近期在写一些批处理程序,但在命名时发现了一些问题,BAT文件名中含有英文圆括号时,批处理程序就会执行错误,去除英文圆括号后,程序就能正常执行。 测试一下: 1、先生成两个BAT空文件,一个命名为中文状态下的...

    BAT文件命名中含有英文括号运行出错

    近期在写一些批处理程序,但在命名时发现了一些问题,BAT文件名中含有英文圆括号时,批处理程序就会执行错误,去除英文圆括号后,程序就能正常执行。

    测试一下:

    1、先生成两个BAT空文件,一个命名为中文状态下的圆括号,另一个命名为英文状态下的圆括号

    2、 在BAT文件输入相同的批处理程序

    3、在cmd命令框中运行

    英文状态的圆括号文件一闪而过。

    中文状态的圆括号文件正常执行。

    展开全文
  • 一、shell中的大括号(也叫花括号) "{}"的用法: 1、${var} Linux之shell中的大括号、中括号、小括号的使用详解+多示例 [root@Legion100 ~]# var=lookback [root@Legion100 ~]# echo "Legion$var" Legionlookback ...
    一、shell中的大括号(也叫花括号) "{}"的用法:
    
    1、${var} 
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# var=lookback
    [root@Legion100 ~]# echo "Legion$var"
    Legionlookback
    [root@Legion100 ~]# echo "$varLegion"
    
    [root@Legion100 ~]# echo "${var}Legion"
    lookbackLegion
    [root@Legion100 ~]# 
    解释:当变量名和后面的内容都是变量命名所允许的内容时候这时候直接用$var是不行的得用{}把变量名括起来
    
    2、${var:-string}
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# var=""
    [root@Legion100 ~]# echo ${var:-a}
    a
    [root@Legion100 ~]# var=lookback
    [root@Legion100 ~]# echo ${var:-a}
    lookback
    [root@Legion100 ~]# 
    解释:当变量var值为空时${var:-a}会吧a作为值,当变量var值不为空时,${var:-a}会吧var的值作为变量
    
    3、${var:+string}
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# var=""
    [root@Legion100 ~]# echo ${var:+a}
    
    [root@Legion100 ~]# var=lookback
    [root@Legion100 ~]# echo ${var:+a}
    a
    [root@Legion100 ~]#
    解释:${var:+a}的替换规则和上面的相反,即当变量var的值不为空的时将值换成a,当变量var为空时则不替换或者说是替换成变量var的值,即空值。(因为变量var此时为空,所以这两种说法我认为是一样的)
    
    4、${var:=string}
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# var=""
    [root@Legion100 ~]# echo ${var:=a}
    a
    [root@Legion100 ~]# echo ${var:=b}
    a
    [root@Legion100 ~]# echo $var
    a
    [root@Legion100 ~]# var=lookback
    [root@Legion100 ~]# echo ${var:=a}
    lookback
    [root@Legion100 ~]# echo ${var:=b}
    lookback
    [root@Legion100 ~]# echo $var
    lookback
    [root@Legion100 ~]#
    解释:当变量var值为空时,${var:=a}会将其赋值为a,且变量var也被赋值是a了,若变量var不为空时,${var:=string}的值都是变量var的值。(很常用的一种用法是,判断某个变量是否赋值,没有的话则给它赋上一个默认值。)
    
    5、${var:?string}
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
      1 #!/bin/bash
      2 #########################################################################
      3 # File Name: 123.sh
      4 # Author: LookBack
      5 # Email: admin#05hd.com
      6 # Version:
      1 #!/bin/bash
      1 #!/bin/bash
      1 #!/bin/bash
      1 #!/bin/bash
      2 #########################################################################
      3 # File Name: 123.sh
      4 # Author: LookBack
      5 # Email: admin#dwhd.org
      6 # Version:
      7 # Created Time: 2015年07月08日 星期三 20时57分26秒
      8 #########################################################################
      9
     10 var=lookback
     11 echo ${var:?Legion}
     12 var=""
     13 echo ${var:?Legion}
     14 echo test
     15
    ~/123.sh [FORMAT=unix] [TYPE=SH] [POS=15,1][100%] 15-07-08 - 21:03:06
    "123.sh" 15L, 366C [w]
    [root@Legion100 ~]# bash 123.sh
    lookback
    123.sh: line 13: var: Legion
    [root@Legion100 ~]# echo $?
    1
    [root@Legion100 ~]# 
    解释:若变量var不为空,则用变量var的值来替换${var:?string};若变量var为空,则把string输出到标准错误中,并从脚本中退出。我们可利用此特性来检查是否设置了变量的值。
    
    6、扩展
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# var=""
    [root@Legion100 ~]# echo ${var:-a}
    a
    [root@Legion100 ~]# a=Legion
    [root@Legion100 ~]# echo ${var:-$a}
    Legion
    [root@Legion100 ~]# echo ${var:-$(date +%F)}
    2015-07-08
    [root@Legion100 ~]# 
    说明:你们以为a这个位置只能常量?答案是否定的照样可以是其他变量名或者一个命令。
    
    7、${var%pattern}
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# var=lookbacklookbacklookback
    [root@Legion100 ~]# echo ${var%b*}
    lookbacklookbacklook
    [root@Legion100 ~]# 
    解释:${variable%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最短的匹配模式
    
    8、${var%%pattern}
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# var=lookbacklookbacklookback
    [root@Legion100 ~]# echo ${var%%b*}
    look
    [root@Legion100 ~]# 
    解释:${variable%%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最长的匹配模式
    
    9、${var#pattern}
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# var=lookbacklookbacklookback
    [root@Legion100 ~]# echo ${var#*b}
    acklookbacklookback
    [root@Legion100 ~]# 
    解释:${variable#pattern} 这种模式时,shell在variable中查找,看它是否一给的模式pattern开始,如果是,就从命令行把variable中的内容去掉左边最短的匹配模式
    
    10、${var##pattern}
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# var=lookbacklookbacklookback
    [root@Legion100 ~]# echo ${var#*b}
    acklookbacklookback
    [root@Legion100 ~]# echo ${var##*b}
    ack
    [root@Legion100 ~]# 
    解释: ${variable##pattern} 这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最长的匹配模式
    
    11、{1,2,3}和{1..n}
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# ls -lh
    总用量 72K
    -rw-------. 1 root root 10K 5月  31 05:13 anaconda-ks.cfg
    -rw-r--r--. 1 root root 44K 5月  31 05:13 install.log
    -rw-r--r--. 1 root root 11K 5月  31 05:05 install.log.syslog
    [root@Legion100 ~]# touch {a,b,c,d}_testFile
    [root@Legion100 ~]# ls -lh
    总用量 72K
    -rw-------. 1 root root 10K 5月  31 05:13 anaconda-ks.cfg
    -rw-r--r--  1 root root   0 7月   9 00:21 a_testFile
    -rw-r--r--  1 root root   0 7月   9 00:21 b_testFile
    -rw-r--r--  1 root root   0 7月   9 00:21 c_testFile
    -rw-r--r--  1 root root   0 7月   9 00:21 d_testFile
    -rw-r--r--. 1 root root 44K 5月  31 05:13 install.log
    -rw-r--r--. 1 root root 11K 5月  31 05:05 install.log.syslog
    [root@Legion100 ~]# touch {1..5}_testFile
    [root@Legion100 ~]# ls -lh
    总用量 72K
    -rw-r--r--  1 root root   0 7月   9 00:21 1_testFile
    -rw-r--r--  1 root root   0 7月   9 00:21 2_testFile
    -rw-r--r--  1 root root   0 7月   9 00:21 3_testFile
    -rw-r--r--  1 root root   0 7月   9 00:21 4_testFile
    -rw-r--r--  1 root root   0 7月   9 00:21 5_testFile
    -rw-------. 1 root root 10K 5月  31 05:13 anaconda-ks.cfg
    -rw-r--r--  1 root root   0 7月   9 00:21 a_testFile
    -rw-r--r--  1 root root   0 7月   9 00:21 b_testFile
    -rw-r--r--  1 root root   0 7月   9 00:21 c_testFile
    -rw-r--r--  1 root root   0 7月   9 00:21 d_testFile
    -rw-r--r--. 1 root root 44K 5月  31 05:13 install.log
    -rw-r--r--. 1 root root 11K 5月  31 05:05 install.log.syslog
    [root@Legion100 ~]# 
    二、shell中的中括号(也叫方括号) "[ ]"的用法:
    
    1、单中括号 []
    
    ①bash 的内部命令,[和test是等同的。如果我们不用绝对路径指明,通常我们用的都是bash自带的命令。if/test结构中的左中括号是调用test的命令标识,右中括号是关闭条件判断的。这个命令把它的参数作为比较表达式或者作为文件测试,并且根据比较的结果来返回一个退出状态码。if/test结构中并不是必须右中括号,但是新版的Bash中要求必须这样。
    
    ②Test和[]中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq,-gt这种形式。无论是字符串比较还是整数比较都不支持大于号小于号。如果实在想用,对于字符串比较可以使用转义形式,如果比较"ab"和"bc":[ ab \< bc ],结果为真,也就是返回状态为0。[ ]中的逻辑与和逻辑或使用-a 和-o 表示。
    
    ③字符范围。用作正则表达式的一部分,描述一个匹配的字符范围。作为test用途的中括号内不能使用正则。
    
    ④在一个array 结构的上下文中,中括号用来引用数组中每个元素的编号。
    
    2、双中括号[[ ]]
    
    ①[[是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。在[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。
    
    ②支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。[[ ]] 中匹配字符串或通配符,不需要引号。
    
    ③使用[[ ... ]]条件判断结构,而不是[ ... ],能够防止脚本中的许多逻辑错误。比如,&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。
    
    ④bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。
    
    三、shell中的小括号 "( )"的用法:
    
    1、()用法
    
    ①、() 数组赋值
    
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# a=(a b c d)
    [root@Legion100 ~]# echo ${#a[*]}
    4
    [root@Legion100 ~]# echo ${#a[@]}
    4
    [root@Legion100 ~]# echo ${a[1]}
    b
    [root@Legion100 ~]# echo ${a[0]}
    a
    [root@Legion100 ~]# 
    ②、() 子shell赋值
    
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# (var=lookback;echo $var)
    lookback
    [root@Legion100 ~]# echo $var
    
    [root@Legion100 ~]#
    在子shell中变量var值为lookback,但是在上级shell中就不是这个值,可以看出是在子shell中有效的赋值
    
    ③、() 命令集合结果重定向
    
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# (echo "a";echo "b"; ) | awk '{print NR,$0}'
    1 a
    2 b
    [root@Legion100 ~]# 
    2、$()用法
    这个就不多说了应该都知道
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# echo "$(ls -l)"
    总用量 72
    -rw-------. 1 root root 10161 5月  31 05:13 anaconda-ks.cfg
    -rw-r--r--. 1 root root 44528 5月  31 05:13 install.log
    -rw-r--r--. 1 root root 10260 5月  31 05:05 install.log.syslog
    [root@Legion100 ~]# date
    2015年 07月 08日 星期三 23:48:26 CST
    [root@Legion100 ~]# echo "date"
    date
    [root@Legion100 ~]# echo "$(date)"
    2015年 07月 08日 星期三 23:48:40 CST
    [root@Legion100 ~]# 
    3、(())用法
    Linux之shell中的大括号、中括号、小括号的使用详解+多示例
    
    [root@Legion100 ~]# echo $((3+2))
    5
    [root@Legion100 ~]# echo $((10/2))
    5
    [root@Legion100 ~]# echo $((3*2))
    6
    [root@Legion100 ~]# echo $((3-2))
    1
    [root@Legion100 ~]# echo $((25>3 ? 2:3))
    2
    [root@Legion100 ~]# echo $((25<3 ? 2:3))
    3
    [root@Legion100 ~]# echo $((a=2+3))
    5
    [root@Legion100 ~]# echo $a
    5
    [root@Legion100 ~]# echo $((a+=2))
    7
    [root@Legion100 ~]# echo $a
    7
    [root@Legion100 ~]# echo $((a+=2))
    9
    [root@Legion100 ~]# echo $a
    9
    [root@Legion100 ~]# 

     

    展开全文
  • <>表明这个文件是一个工程或标准文件,比如: #include <...""表明该文件是用户提供的头文件,查找该文件时将从当前文件目录(或文件名指定的其他目录)中寻找文件,然后在标准位置寻找文件 ...
  • 使用.format 参考博文: python在with open()函数中,如何在文件名设置中引用变量 noww = time.strftime("%Y%m%d", time.localtime(time.time())) with open('runs/{0}.csv'.format(noww), 'a', newline='') as file...
  • shell 正则表达式与文件名匹配

    千次阅读 2021-05-16 10:25:15
    C#正则表达式Regex常用匹配 使用Regex类需要引用命名空间:using System.Text.RegularExpressions; 利用Regex类实现验证 示例1:注释的代码所起的作用是相同的,不过一个是静态方法,一个是 ... JQUERY选择和操作DOM...
  • 括号<>表明这个文件是一个工程或标准头文件。查找过程会首先检查预定义的目录,我们可以通过设置搜索路径环境变量或命令选项来修改这些目录。 如果文件名用一对引号括“”起来,则表明该文件是用户名提供的...
  • #include #include #include "teseModule/test.h" 一、尖括号写入 用尖括号引用的头文件,是写入了环境变量的,可以在任何地方调用的,具有全局性质的头文件。 尖括号引入的这一类头文件,在Linux中,默认放在/usr/...
  • Linux之shell中的大括号、中括号、小括号的使用详解及示例 **摘要:**很多人和我一样对于shell的各种括号的各种用法肯定不是很清楚,有时候看见别人脚本都不知道是什么意思,今天就来说说bash中的大中小括号的用法和...
  • C语言中头文件尖括号和引号的区别

    千次阅读 2021-05-19 18:48:02
    用include 引用头文件时,双引号和尖括号的区别:1.双引号:引用非标准库的头文件,编译器首先在程序源文件所在目录查找,如果未找到,则去系统默认目录查找,通常用于引用用户自定义的头文件。2.尖扩号:只在系统...
  • 我有一个目录,其中一些文件名被错误地命名为.pdf而不是something.pdf.是否有一个快速的单行程序,我可以用来删除文件名中的空格.我试过找-name“* .pdf”-type f |重命名’s / // g’但这没用.解决方法:在zsh中,使用...
  • 从Word文档中提取所有引用一个供个人使用的python... 该引用必须在括号中(括号,即()) 参考必须包含一年(例如2021年)安装安装 安装软件包/模块(将显示错误) 编辑脚本并添加您的文档文件名。跑python extract.py
  • os.path.splitext() # 将文件名和后缀分离 repr() # 可在执行字符串语句时保留‘’ 实现 # 导入库 import numpy as np import os # 进入目标文件夹 os.chdir(r'...路径...') file_list = os.list
  • java 解决文件名重复问题的两种方法

    万次阅读 2018-03-21 18:59:11
    java 解决文件名重复问题的两种方法 在项目开发过程中,在保存文件的时候,通常要考虑文件名重复的情况,一般来说会有两种做法 1.如果文件名不存在,不修改文件名;如果存在在文件名。在文件名后面加数字,1,2,3...
  • 忘记在\end{document}前面放\bibliographystyle{样式}和\bibliography{参考文献bib文件名}: \bibliographystyle{plain} \bibliography{sample} 其中, LaTeX 标准选项及其样式共有以下8种: plain,按字母的顺序...
  • C++文件包含、引用、存储类

    千次阅读 2020-10-15 17:57:07
    C++文件包含、引用、存储类 C++文件包含 “文件包含”是指一个源文件可以将...在#include命令中,文件名除了可以用尖括号括起来以外,还可以用双撇号括起来。#include命令的一般形式为: #include <文件名>...
  • c语言方括号的用法

    2021-05-22 15:10:37
    c语言方括号的用法2020-03-31C语言中方括号是用来定义数组的表示数组的长度,而大括号是用来赋初始值的,表示这个变量的取值,下面小编就来为大家介绍c语言方括号的用法。 1、单中括号 [] ①bash 的内部命令,[和...
  • 基础我们定义一个变量(等号两边不能有空格)FILEPATH=/var/home/sssFILEFILENAME=test001在引用这个变量是我们可以直接使用$后面跟上变量的名字比如: $FILEPATH 还可以 : ${FILEPATH}使用${}这种方式的好处是可以...
  • 摘要:很多人和我一样对于shell的各种括号的各种用法肯定不是很清楚,有时候看见别人脚本都不知道是什么意思,今天就来说说bash中的大中小括号的用法和解释,本人常用bash所以也只能用bash来说明了,若其他shell有...
  • 规范内容一般包括:函数命名格式、变量命名格式、大小写、缩进、花括号位置、特殊含义的前缀或后缀、注释格式等。 避免写出“一次性代码” 有的代码,让人一看就想删除了,然后重新实现,重新编码。这就是有一个...
  • 最近学到了shell脚本编程,觉得脚本中的不同括号有不同的用处,以及有些括号的格式也有特殊要求,下面我就总结一下各种括号的用法。 一、小括号();双小括号(()) &nbsp; 1、单小括号 () &nbsp; &nbsp; 1...
  • linux利用sed去除中括号[]

    万次阅读 2017-02-04 09:27:03
    引用别人的博客中的内容来讲解一下sed,该博客地址为:http://www.cnblogs.com/end/archive/2012/05/24/2517131.html内容如下:1、网络上现成的资料  格式: sed -i “s/查找字段/替换字段/g” grep 查找字段 -rl...
  • 在我们的工作生活中,不管是程序员还是非程序员,我们都会遇到过一个需求,那就是对一堆的文件进行重命名。在Windows下有很多优秀...1. rename命令顾名思义,rename命令就是用来进行重命名文件名的。rename命令有非...
  • Linux—Shell 中各种括号的作用

    千次阅读 2021-09-28 08:47:00
    目录引言一、小括号1. 单小括号2. 双小括号二、中括号1. 单中括号2. 双中括号三、大括号1. 用法2. 特殊的替换结构3. 四种模式匹配替换结构4. 字符串提取和替换四、符号$后的括号五、使用总结 引言 Linux 中 Shell ...
  • 保存先前工作目录的值即/home/jobs $ cd - # 减号引用了先前工作目录,cd命令切换到并显示先前的工作目录 控制通配符 如果设置了bash noglob变量或者使用了带-f选项的set 命令,称为globbing的文件名替换就会被禁止...
  • shell脚本中各种括号的区别以及用法

    万次阅读 2018-08-19 14:55:33
    最近学到了shell脚本编程,觉得脚本中的不同括号有不同的用处,以及有些括号的格式也有特殊要求,下面我就总结一下各种括号的用法。 一、小括号();双小括号(())  1、单小括号 ()  1:命令替换。等同于`comm`,...
  • 学习test 正则表达式匹配以及花括号界定符   编写脚本hostping.sh,接受一个主机的IPv4地址做为参数,测试是否可连通。如果能ping通,则提示用户 “该IP地址可访问” ;如果不可ping通,则提示用户“该IP地址不可...
  • Linux中的括号用法

    千次阅读 2020-01-02 15:48:26
    一、Linux中的小括号(也叫圆括号)“( )”的用法 1.单小括号() 1)数组赋值或者初始化数组; 2)子Shell赋值:小括号中的内容会开启一个子shell独立运行;括号中以分号连接,最后一个命令不需要;各命令和括号...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,821
精华内容 27,528
热门标签
关键字:

引用文件名的括号