Skip to content
-
漠北新音

漠北新音

也不是重金属

  • 首页
  • 音乐与代码
    • 音乐?代码?
    • 编程与智力
    • 音乐与儿童
    • 当代码遇见音乐:数字时代的艺术二重奏
    • 数字琴弦上的交响
  • 源码下载
Top Stories
三 linux 远程服务器的常用操作封装
二 使用 docker 运行 wordpress
一 Linux Shell 字符模式下汉诺塔的UI实现
十四 使用 shc 编译 linux shell 脚本为可执行文件
十三 文件瘦身-去除 linux shell 脚本注释
十二 bash 的简单面向对象编程
十一 动态函数的科学实现
十 任务和进度展示的封装
九 综合进度条
八 改进的菜单(二)
七 改进的菜单(一)
六 菜单的简易生成方式
五 日志记录和动态函数
四 花式清屏
三 控制台的对齐输出
二 字符的控制台占宽
一 颜色文本
八 再论函数的命名参数设计
七 echo 有时也尴尬
六 脚本的批量 source
五 bash选项的保存修改和还原
四 bash选项的获取和设置
三 函数的命名参数设计
二 栈的简单实现
一 函数调用时, 局部变量的”穿透”
Posted inlinux shell bash 应用

三 linux 远程服务器的常用操作封装

【动机】 与 linux 远程服务器,例如常见的 ECS 通信,不外乎连接,登录…
查看
Posted by Avatar photo Toms G 2025-06-25
Posted inlinux shell bash 应用

二 使用 docker 运行 wordpress

hello,docker in wordpress
查看
Posted by Avatar photo Toms G 2025-06-08
Posted inlinux shell bash 应用

一 Linux Shell 字符模式下汉诺塔的UI实现

【动机】

汉诺塔问题家喻户晓,是递归函数的简单应用,大部分的实现都是强调算法,表示盘子的移动几乎都是用的 A->B B-C 之类的符号来表示盘子的移动过程。如何在 linux shell 字符界面形象的演示盘子的移动呢?

Continue Reading
查看
Posted by Avatar photo Toms G 2025-06-08
Posted inlinux shell bash 工具

十四 使用 shc 编译 linux shell 脚本为可执行文件

【动机】

shc(Shell Compiler)是一个工具,用于将shell脚本编译成二进制执行文件,这样可以防止源代码泄露,并提高脚本的执行效率. 假设存在两个文件, 结构是:

Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-19
Posted inlinux shell bash 工具

十三 文件瘦身-去除 linux shell 脚本注释

【动机】

常见的需求是为了减小脚本体积而去除脚本注释, 近日发现对于一些复杂的脚本, 使用 shc 工具编译脚本为可执行文件, 在去除注释前编译失败, 去除注释后能顺利编译. 如何分离瘦身脚本, 以便可用于任何 linux shell 脚本?

Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-19
Posted inlinux shell bash 工具

十二 bash 的简单面向对象编程

【动机】

众所周知, linux shell 编程, 非面向对象, 故以下代码无法运行:

Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-17
Posted inlinux shell bash 工具

十一 动态函数的科学实现

【动机】

还记得在日志记录和动态函数一篇中, 曾经提到的动态实现? 基本思路是, 先建立动态日志函数的”根”函数 logx, 再在 command_not_found_handle 函数中, 将不存在的日志函数, 例如 logx_ok, 剥离出 ok 作为参数, 重定向到 logx 处理. 这样的方案看上去挺优雅, 但是至少存在以下缺点:

Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-16
Posted inlinux shell bash 工具

十 任务和进度展示的封装

【动机】

从上篇综合进度条中可以看到, 如果每次运行任务(命令或函数), 都需要进行逐个进度条, 变换符号, 耗时函数的调用, 然后再运行任务, 则不可谓不繁. 如何解决?

Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-16
Posted inlinux shell bash 工具

八 改进的菜单(二)

【动机】

上一篇改进的菜单(一), 主要存在的问题是, 如果菜单项和(或)值包含单引号, 得到的结果可能不是预期. 本篇尝试解决.

Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-16
Posted inlinux shell bash 工具

七 改进的菜单(一)

【动机】

上一篇的简易菜单, 至少存在以下两个明显缺点:

  1. 即使行分隔符和列分隔符均采用默认, 调用 kid_menu / kid_assign 时, 仍然需要键入分隔符, 比较繁琐;
  2. 调用代码的视觉(所见即所得)较差.
Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-16
Posted inlinux shell bash 基础

七 echo 有时也尴尬

【动机】

你遇到过想简单的打印孤零零的 -e 吗?

Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-14
Posted inlinux shell bash 基础

八 再论函数的命名参数设计

【动机】

在函数的命名参数设计篇中, 我们看到命名参数的获取和设置上的一些限制. 在本文中, 将其一次性解决.

Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-14
Posted inlinux shell bash 工具

九 综合进度条

【动机】

经常在线安装软件包的朋友, 一定对下载/安装时的进度条印象深刻. 本节起, 一共使用四节的篇幅, 与大家分享几种进度条的制作与使用.

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-19
Posted inlinux shell bash 工具

六 菜单的简易生成方式

【动机】

百度一下, 目前的方法大约是以下几种方式:

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-17
Posted inlinux shell bash 工具

五 日志记录和动态函数

【动机】

linux shell 脚本常见的调试手法如下:

  1. 将命令直接粘贴到控制台
  2. echo / printf 数值
  3. 断点调试, 例如 vscode 配合使用 Bash Debug 等调试插件
Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-16
Posted inlinux shell bash 工具

四 花式清屏

【动机】

众所周知, 清屏采用 clear 命令即可. 只不过有时为了做一些后台进程加载, 或者纯粹为了提升一些用户体验, 可能需要将清屏的过程做一些修饰.

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-15
Posted inlinux shell bash 工具

三 控制台的对齐输出

【动机】

我们在执行大量 linux shell 脚本或命令时, 常常少不了超前打印一些提示或表示正在执行之类的文本, 为避免单调, 有时候需要将文本做一些右对齐或居中显示, 而如果不指定位置, echo / printf 默认只是在当前位置顺序打印.

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-14
Posted inlinux shell bash 工具

二 字符的控制台占宽

【动机】

在一些字符串的控制台对齐(例如居中对齐, 右对齐)输出的场景, 先决条件是计算其中每个字符的占宽(即在控制台中占几列), 以及控制台的总列数, 后者可以通过 tput cols 得到, 前者如果按 ${#str} 简单处理:

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-14
Posted inlinux shell bash 基础

六 脚本的批量 source

【动机】

当入口 linux shell 脚本 main.sh, 在需要包含其他脚本的变量设置, 或者向当前会话添加其他脚本定义的函数等场景, 假设要 source 的文件分两部分, 分别位于项目文件夹以及公共的库文件夹下,一般采取以下形式(本文仅讨论不带参数的 source 语句):

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-13
Posted inlinux shell bash 工具

一 颜色文本

【动机】

一般, 我们使用 printf 或 echo 输出颜色文本,大致应该这样写:

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-12
Posted inlinux shell bash 基础

五 bash选项的保存修改和还原

【动机】

众所周知, bash 选项 errexit(默认为 off) 如果被设置为 on, 意味着只要主进程中任何一个函数(或命令)调用的退出码 (exitcode) 非0, 程序马上退出, 这对提高编码的健壮性的作用不言而喻.

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-12
Posted inlinux shell bash 基础

三 函数的命名参数设计

【动机】

众所周知, linux shell 函数的定义, 默认采用位置参数, 在函数内部, 以 $1 $2 $3… 获取. 这对于一两个参数的函数, 还不觉得有何不便之处, 当参数个数多了以后, 不论是函数的编写还是调用或者扩展, 可能就不太好玩了.

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-11
Posted inlinux shell bash 基础

四 bash选项的获取和设置

【动机】

众所周知,bash 选项分两部分, 分别归 shopt 和 shopt -o 管理, 而后者等同于 set -o.

以 errexit 和 autocd 为例, 使用命令行返回的字符串获取:

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-11
Posted inlinux shell bash 基础

二 栈的简单实现

【动机】

偶尔,我们为了某种需要,临时修改分隔符,例如:

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-10
Posted inlinux shell bash 基础

一 函数调用时, 局部变量的”穿透”

本文讨论 linux shell 脚本函数中, 使用 local 定义的变量的 “穿透性”

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-10
八 改进的菜单(二)
Posted inlinux shell bash 工具

八 改进的菜单(二)

【动机】

上一篇改进的菜单(一), 主要存在的问题是, 如果菜单项和(或)值包含单引号, 得到的结果可能不是预期. 本篇尝试解决.

Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-16Tags: utility
七 改进的菜单(一)
Posted inlinux shell bash 工具

七 改进的菜单(一)

【动机】

上一篇的简易菜单, 至少存在以下两个明显缺点:

  1. 即使行分隔符和列分隔符均采用默认, 调用 kid_menu / kid_assign 时, 仍然需要键入分隔符, 比较繁琐;
  2. 调用代码的视觉(所见即所得)较差.
Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-16Tags: utility
六 菜单的简易生成方式
Posted inlinux shell bash 工具

六 菜单的简易生成方式

【动机】

百度一下, 目前的方法大约是以下几种方式:

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-17Tags: utility
五 日志记录和动态函数
Posted inlinux shell bash 工具

五 日志记录和动态函数

【动机】

linux shell 脚本常见的调试手法如下:

  1. 将命令直接粘贴到控制台
  2. echo / printf 数值
  3. 断点调试, 例如 vscode 配合使用 Bash Debug 等调试插件
Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-16Tags: utility
四 花式清屏
Posted inlinux shell bash 工具

四 花式清屏

【动机】

众所周知, 清屏采用 clear 命令即可. 只不过有时为了做一些后台进程加载, 或者纯粹为了提升一些用户体验, 可能需要将清屏的过程做一些修饰.

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-15Tags: utility
三 控制台的对齐输出
Posted inlinux shell bash 工具

三 控制台的对齐输出

【动机】

我们在执行大量 linux shell 脚本或命令时, 常常少不了超前打印一些提示或表示正在执行之类的文本, 为避免单调, 有时候需要将文本做一些右对齐或居中显示, 而如果不指定位置, echo / printf 默认只是在当前位置顺序打印.

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-14Tags: utility
二 字符的控制台占宽
Posted inlinux shell bash 工具

二 字符的控制台占宽

【动机】

在一些字符串的控制台对齐(例如居中对齐, 右对齐)输出的场景, 先决条件是计算其中每个字符的占宽(即在控制台中占几列), 以及控制台的总列数, 后者可以通过 tput cols 得到, 前者如果按 ${#str} 简单处理:

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-14Tags: utility
一 颜色文本
Posted inlinux shell bash 工具

一 颜色文本

【动机】

一般, 我们使用 printf 或 echo 输出颜色文本,大致应该这样写:

Continue Reading
查看
Posted by Avatar photo Toms G 2025-03-12Tags: utility
八 再论函数的命名参数设计
Posted inlinux shell bash 基础

八 再论函数的命名参数设计

【动机】

在函数的命名参数设计篇中, 我们看到命名参数的获取和设置上的一些限制. 在本文中, 将其一次性解决.

Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-14Tags: foundation
七 echo 有时也尴尬
Posted inlinux shell bash 基础

七 echo 有时也尴尬

【动机】

你遇到过想简单的打印孤零零的 -e 吗?

Continue Reading
查看
Posted by Avatar photo Toms G 2025-05-14Tags: foundation

文章分页

Previous page 1 2 3 Next page

最新文章

  • 文山银都佳园业主”被签”合同, 无人制得住业委会?!
  • 三 linux 远程服务器的常用操作封装
  • 文山银都佳园业委会违法签订物业服务合同
  • 二 使用 docker 运行 wordpress
  • 一 Linux Shell 字符模式下汉诺塔的UI实现

分类

  • linux shell bash 基础
  • linux shell bash 工具
  • linux shell bash 应用
  • 民生关注
您可能想看
Posted inlinux shell bash 应用

三 linux 远程服务器的常用操作封装

Posted by Avatar photo Toms G 2025-06-25
Posted inlinux shell bash 应用

二 使用 docker 运行 wordpress

Posted by Avatar photo Toms G 2025-06-08
Posted inlinux shell bash 应用

一 Linux Shell 字符模式下汉诺塔的UI实现

Posted by Avatar photo Toms G 2025-06-08
Posted inlinux shell bash 工具

十四 使用 shc 编译 linux shell 脚本为可执行文件

Posted by Avatar photo Toms G 2025-05-19

error image 滇ICP备2025067096号-1    滇公网安备53262102000539号

Copyright 2025 — 漠北新音.

All rights reserved. Thanks for your visiting!

Scroll to Top