bash
Bash 里的 word splitting 是很基础的一个知识点,如果没有理解透彻,很多时候会犯下不少奇奇怪怪的错误(参见 Bash Pitfalls,或者本博客翻译 Bash Pitfalls: 编程易犯的错误(一))。 一个例子,现在我们现在要一次读入文件 onefile.txt 的内容并输出,假设文件的内容是这样的: 当我们习惯性地使用 for 循环来解决这个问题时,你会发现输出的结果与预期大相径庭: 给我们的脑子也打开调试开关。首先 onefile.txt 的内容一次性地输出给 for 循环,我在中间用比较形象的 tag 来描述一个空白字符: 这样一来 hello 和 world 被分隔可以很好地解释,但是那又是为什么第二行的空行没有了呢?原来,当 IFS 包含空白字符时(比如回车、空格、制表符等),在任何需要分隔单词的场景下,位于字符串开头和结尾的空白字符会被删除,另外一点是,字符串中间的连续空白会被压缩成一个
这个应该算法是 hexo 的一个BUG或者说是hexo的不足。正常情况下,我们将 markdown 文件渲染为 html 时,需要保护一些特别部分不被渲染,比如说代码块与公式。 很明显这块代码不应该被渲染,公式也是如此,但是对于复杂的公式,可能存在大公式里包含小公式的情况,hexo 有可能只渲染子模块,比如: 所以接下来就是算法设计部分,我们拿到的是markdown 的文字,在渲染前进行 过滤处理
WSL只能在其专用控制台窗口中使用,而默认不能使用其他终端模拟器(如Putty)以交互方式使用其Bash shell。 下面介绍如何在Ubuntu 18.04上设置OpenSSH服务器,注意其他Linux发行版的设置过程也大体相同。完成设置后,可以通过连接到OpenSSH服务器连接到WSL
默认安全。代码不能访问文件、网络、环境变量等(除非显式开启)。 有一组经过审计的 标准模块 ,保证能在 Deno 上工作
您可以使用以下命令在 Linux 或 macOS 上从源代码构建和安装 cpufetch:首先克隆 repo。 首次安装 终端 应用。然后打开 termux 并运行以下命令: 默认样式是花哨的
修复了与带有转义序列的批处理替换相关的错误。 修复了以下 bug:试图将文档另存为非 Unicode 编码时,即使文档中包含 Unicode 字符,也可能未显示警告对话框。 修复了以下 bug:如果搜索很长的字符串,则单击“在文件中查找”后搜索的字符串未突出显示
今天被基友催着开始折腾hadoop集群的问题,考虑到要批量部署以及统一性的问题准备写个部署脚本,对bash脚本的话我也写过不少了,然而没想到还是碰到了问题。 因为要安装nutch、hbase、apache-ant、jdk等一堆程序,所以环境变量也有很多需要添加的,所以我没考虑使用echo逐行输入,而是使用了cat重定向到文件的方法,那么问题就来了,作为环境变量,那必然会有一大堆的"$"符号,于是乎……它们全被解析成具体的路径了,这就很尴尬。 在手动修理完后我开始研究怎么样阻止这一悲剧的发生,经过一波搜索,我找到了两个办法
程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的。 系统环境变量:公共的,对全部的用户都生效。 用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效
您可以使用以下命令在 Linux 或 macOS 上从源代码构建和安装 cpufetch:首先克隆存储库。 首次安装 终端 应用。然后打开 termux 并运行以下命令: 默认样式是花哨的
使用Linux或者unix系统的同学可能都对#!这个符号并不陌生,但是你真的了解它吗? Shebang这个符号通常在Unix系统的脚本中第一行开头中写到,它指明了执行这个脚本文件的解释程序。 1. 如果脚本文件中没有#!这一行,那么它执行时会默认用当前Shell去解释这个脚本(即:$SHELL环境变量)。 2. 如果#!之后的解释程序是一个可执行文件,那么执行这个脚本时,它就会把文件名及其参数一起作为参数传给那个解释程序去执行
