`
gembler
  • 浏览: 37196 次
  • 性别: Icon_minigender_1
  • 来自: 妖都
社区版块
存档分类
最新评论

:() { :|:& }; :

阅读更多

 

gembler@best-ubuntu:~$ :() { :|:& }; :
gembler@best-ubuntu:~$ echo '十人|日一|十十o' | sed 's/.../&\n/g'
 

哈哈,这两行... ...

 

  • :() { :|:& }; :

:() -> 这里是一个函数签名,在非posix标准下的bash,用冒号作为函数名是合法的,因为是先函数名再内置命令。

 

 ':' 冒号,也是一个命令,是空,啥都不干,有时候可以当注释用,哈哈:

gembler@best-ubuntu:~$ : gembler, are you insane?
 

而且是返回0,也就是true,有时候死循环能用上:

gembler@best-ubuntu:~$ :
gembler@best-ubuntu:~$ echo $?
0
gembler@best-ubuntu:~$ while :; do echo gembler; done

 

 发现我唠叨了... ...回正题:

gembler@best-ubuntu:~$ :() { echo gembler; }    #bash默认非posix标准的
gembler@best-ubuntu:~$ :
gembler
gembler@best-ubuntu:~$ set -o posix    #开启posix标准,当然,也能用“+o”把它禁掉
gembler@best-ubuntu:~$ :() { echo gembler; }    #马上就......
bash: “:”: 无效的标识符

 

 把 ':' 冒号换成 foo ,弄个清晰点的结构:

foo() {    #这下够清晰了吧
    foo|foo&
};
foo

 

其实它是递归创建后台进程,直到... ...

 

如果省去了管道(pipe):

foo() {
    foo
};
foo

只会挤满栈(stack),影响该进程,所以好一点的机器,基本无视。

是但,加上管道(pipe),那就... ...挤满进程列表,这个有点恐怖,循环递归地进程创建进程 - 囧

 

普通用户是可以跑这命令的,为了避免悲剧的发生,所以限制一下 user 的 noproc 较好,我只想到这方案,有什么其他方案,麻烦吼一下 :)

  • echo '十人|日一|十十o' | sed 's/.../&\n/g'

这个... ...输出结果是:

 

gembler@best-ubuntu:~$ $ echo '十人|日一|十十o' | sed 's/.../&\n/g'    #幹! ---- 哈哈
十人|
日一|
十十o

 

's/.../&\n/g':

 

    举个例子, 's/best/gembler/g' ,是表示将 best 替换为 gembler ,在不加 'g' 的情况下,在一行里只处理第一个匹配,然后就跳到下一行,同行后面即使有匹配的,它也不管,所以加上 'g' ,是应该的。

 

    原命令从表面上来看是将 '...' 替换为 '&\n' ,但是 '...' 是表示每匹配三个字符, '&' 是匹配项的占位符, '\n' 就这是换行符了,所以输出是每三个字符就换一行。“幹! ” ---- 哈哈

分享到:
评论

相关推荐

    cpp代码-C和C++:一些符号 || && ! :: . -> %

    例如,`std::cout` 就是访问标准库中的 `cout` 对象。 3. **成员访问运算符**: - `.`:用于访问类的非静态成员。例如,`myObject.myMember` 访问对象 `myObject` 的 `myMember` 成员。 - `->`:箭头运算符,常...

    C++文件的使用

    只有当函数被调用时没有声明方式参数的情况下,默认值才会被采用。如果函数被调用时声明了任何参数,默认值将被完全改写,..."example.bin", ios::out | ios::app | ios::binary); 两种打开文件的方式都是正确的。

    Syntax-analysis.rar_C语法检查

    ::=function<语句串>endfunc 2.<语句串>::=<语句>{ <语句>} 3.<语句>::=<赋值语句> 4.<赋值语句>::=ID=<表达式> 5.<表达式>::=<项>{+<项>|-<...

    drk-in::crab:| Rust实用程序库

    :crab: 浸入式| 实用程序库如何...官方文件 :briefcase: :sparkling_heart:我为什么做 :sparkles: 为了娱乐 :eyes: 个人使用 :man::laptop:执照 :bookmark_tabs: (c)2021年法比奥·格里马尔迪(Fabio Grimaldi)。

    PcShare 远程控制2008 源代码 C#

    远控命令 - Interface; 上线命令 : $Online||软件版本||计算机名||客户注释||操作系统||CPU频率||内存容量||代理端口 (没有的为空) 例如 : $Online||Windows XP Sp2||Computer2202||无||Windows XP Sp2||AMD ...

    pcshare2008 源码

    pcshare2008 源码 C# 远控命令 - Interface; 上线命令 : $Online||软件版本||计算机名||客户注释||操作系统||CPU频率||内存容量||代理端口 (没有的为空) 例如 : $Online||Windows XP Sp2||Computer2202||无||...

    无线温度控制器,是用于无线低温水地暖温度控制器的设备,包括控制面板和执行器两部分

    文件目录 | |-- CODE: 源代码 | |-- control: 控制面板程序 |-- PCB: | | -- 接收: 执行器(接收机)原理图&PCB | | -- 控制: 控制面板原理图&PCB | | -- 制板文件 | | -- 存在问题 |-- 参考代码 ...

    “数学表达式”计算源代码,Pascal语言

    1.输入表达式自动计算结果 2.支持多种数学函数,如附件中的MathFuncs.txt 3.支持自定义函数,如 sum(a, b) = a + b max(a, b) = ifthen(a > b, a, b) byteToword(H, L) = H 计算符号,优先级数值越小,...||:逻辑或

    HTML特殊字符集[参照].pdf

    3.特殊符号:& © ® ™   < > " 这些字符是HTML和XHTML中特有的特殊符号,包括了版权符号、注册商标符号、商标符号、空格符号、 Less-than符号、Greater-than符号、双引号符号等。...

    简易计算器

    简易表达式计算工具。... 3,表达式支持逻辑运算符:&& || > ≥ ≤ ==; 4,负数一定要用()包含; 5,不能省略操作符,如2*a不能用2a代替; 6,表达式示例:a+b,2*a-(a*(-3)-b)*(a/3),a+(b*2-3)>2*c,a&&b||(a≤3)。

    毕业设计:基于手势控制的智能体感遥控车设计 [UCOOS && MPU9250 && PID]

    毕业设计:基于手势控制的智能体感遥控车设计 [UCOOS && MPU9250 && PID] 目录说明 |---Gesture_control_of_smart_car |--- + Hardware : 硬件电路设计 |--- + Software : 软件RTOS设计 |--- + date : 参考资料,...

    C++项目资源-WebBench-master

    | ------------- |:-------------:| -----:| |-f |--force |不需要等待服务器响应 | |-r |--reload |发送重新加载请求 | |-t |--time <sec> |运行多长时间,单位:秒" | |-p |--proxy <server:port> |使用代理服

    Qt C++ 递归删除文件目录和文件

    //QFileInfoList fileList = dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot, QDir::Name | QDir::DirsFirst); QFileInfoList fileList = dir.entryInfoList(QDir::Files | ...

    基于Python的词法分析.zip

    资源包含文件:设计报告word+指导书+代码及数据 要求:对如下内容展开描述 1.给出各类单词的词法规则描述(正则文法或正则表达式) ① 保留字:[int | struct | bool | float | if | else | do | while | return | ...

    求解二次约束超定 l1 最小化。:求解 min ||K * x - f||_1 st ||y - x||_2 <= \epsilon 其中 K 的行数多于列数。-matlab开发

    =求解二次约束超定 l1 最小化: min ||K * x - f||_1 st ||y - x||_2 <= \epsilon 使用原始内点方法(使用对数屏障)。 稀疏线性系统使用专门的预处理方案进行求解。 建议使用 Blendenpik 和 SpTriSolve(两者...

    常用HTML转义字符

    ... ...- `&` 用于表示实体引用的开始。...这不仅能够避免语法错误,还能确保页面的正常渲染。...2. **实体名**或**实体编号**:实体名是易于理解的名称,如`lt`表示“less than”;...- **实体名称**的优点在于直观易懂,缺点是...

    onlinetools:在线cms识别|信息精度|工控|系统|物联网安全| cms扩展扫描| nmap端口扫描|子域名获取|待续。

    在线工具 这是一个线上工具箱,收集整理了一些渗透测试过程中常见的需求(病句?) 现在已经包含的功能有: 在线cms识别|信息精度|工控|系统|物联网安全| cms扩展扫描| nmap端口扫描|子域名获取 ...

    sping.cmd&ping;命令加强脚本(含时间戳)windows版

    :: echo %1 !dt! ^^|=^> >>%UserProFile%\Desktop\log.txt echo %1 !dt! ^^|=^> ) else ( :: echo %1 !dt! !n:~0,-1! ^|!x!=^> >>%UserProFile%\Desktop\log.txt echo %1 !dt! !n:~0! ^|!x!=^>

Global site tag (gtag.js) - Google Analytics