首页 > 系统相关 >【代码片段】makefile 中通过 shell 函数执行 sed

【代码片段】makefile 中通过 shell 函数执行 sed

时间:2023-09-29 15:22:42浏览次数:56  
标签:shell set makefile js release sed debug const

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!


先上代码:(在 macos 上调试通过)

# define a shell function to set debug mode to release mode
#   when os is macbook, use gsed as sed
define function_sed_set_release_mod
  set -x; \
  sedcmd="sed"; \
  if [[ "$$OSTYPE" == "darwin"* ]]; then \
    sedcmd="gsed"; \
	if [[ ! -f "/opt/homebrew/bin/gsed" ]]; then \
      brew install gnu-sed; \
    fi; \
  fi; \
  $$sedcmd -e 's/const\s\+_debug\s*=\s*\(true\|false\)\s*;\?/const _debug = false;/' $1 > $2; 
endef

# 把 `const _debug = true;` 修改为 ``const _debug = false;``

release.js: debug.js
	@$(call function_sed_set_release_mod, debug.js, release.js )

执行:make release.js 便可以实现用 sed 替换

标签:shell,set,makefile,js,release,sed,debug,const
From: https://www.cnblogs.com/ahfuzhang/p/17737014.html

相关文章

  • STM32CubeMX 生成的 Makefile 文件解析
    STM32CubeMX生成的Makefile文件解析Makefile的前置知识一个makefile是由一系列的规则(rule)组成的。一条完整的规则包括目标(target)、依赖(prerequistites)、方法(recipe):target...:prerequistites...recipe......依赖和方法不一定需要同......
  • Shell Issues
    ShellIssuesDebris双引号包裹下引用变量,其中的换行符号(不是转义)会被解析,否则会被直接忽视(不会被替换为\n),例如:$pre="ILoveYou"echo$pre #输出一行内容echo"$pre" #输出多行内容引用变量时,若其中存储的是字符串且对字符串的转义有严格要求,则形如"$var"的变......
  • linux下shell脚本实现wordpress搭建
    wordpress_auto_install.sh  #!/bin/bashuser=$(whoami)functionwordpress_auto_install(){if[$user=="root"];thenecho"前提:调整系统配置,如关闭selinux、firewall等!"sed-i's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/......
  • Shell Scripts
    ShellScriptsShell编程笔记基本语法模块指定脚本解析器#!/bin/bash#!/bin/shbash是最常用的解析器,sh等其他shell解析器与bash有语法上的区别变量变量名:字母、数字、下划线,数字不可开头变量赋值:user="festu"user=festu"festu" #festufestuuser=festu#......
  • 玩转Redhat Linux 8.0系列 | 使用BASH SHELL执行命令
    今天继续分享一些RedhatLinux8.0的知识,记得关注,会一直更新~基本命令语法GNUBourne-AgainShell(bash)这一程序可以解读用户键入的命令。当您准备好执行命令时,请按Enter键。在单独的行上键入每个命令。系统会显示命令输出,然后显示下一shell提示符。[user@host]$whoamiuser[u......
  • [Linux] shell文本处理记录 - 查找、增删特定行及附近行
    转:https://blog.csdn.net/wy_hhxx/article/details/127416595查找username所在行并删除此行,输出到新文件sed'/username/,+d'04filename.log>04filename_new.log 目录1.grep查找关键字所在行号、查找关键字前后行2.sed删除指定行及其前后若干行3.sed在匹配行前或后添......
  • Powershell 获取AD Certificate 详细信息
    get-aduser-SearchBase$ou-Filter*-Propertiesdisplayname,usercertificate|ForEach-Object{$displayname=$_.displayname$_|select-ExpandPropertyusercertificate|ForEach-Object{$cert=[System.Security.Cryptography.X509Certifi......
  • shell遍历比较文件夹下文件md5值
    #!/bin/bashCURRENT_DIR=$(cd$(dirname$0);pwd)SOURCE_DIR="$CURRENT_DIR/python_data"TARGET_DIR="$CURRENT_DIR/out_bin"cd$SOURCE_DIR>python.md5forfilein$(ls$SOURCE_DIR|grep"data")dosource_file=${SOURCE_......
  • Caused by: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock
    153392398 RUNNING 2023-08-2309:10:09 6 397413 0 2 4 1136 2 2 0 REPEATABLEREAD 1 1 0 0 0 0 328854561014064 RUNNING 2023-08-2309:19:03 0 397493 0 0 0 1136 0 0 0 REPEATABLEREAD 1 1 0 0 0 0 328854560997800 RUNNING 2023-08-2309:06:41 0 39733......
  • 掌握Shell用户管理,让你的系统运行更顺畅!
    用户帐号帐号操作主要是增、删、改、禁。Linux系统提供了底层的 useradd, userdel 和 usermod 来完成相关操作,也提供了进一步的简化封装:adduser, deluser。为了避免混淆,咱们这里只介绍最底层的指令,这些指令设计上已经够简洁明了方便。由于只有系统管理员才能创建新用户,请确......