shell 命令总结 --持续更新

  • $的用法

    • $$ shell本身的PID
    • $! shell最后运行的后台PID
    • $? 最后运行的命令的结束代码
    • $- 使用set命令设定的Flag一览
    • $* 所有参数列表, 如”$*” 用 “括起来的情况, 以” 1 2 … $n”的形式输出所有参数
    • $@ 所有参数列表, 如”$@” 用”括起来的情况,以”$1” “$2" ... "$n“的形式输出所有参数
    • $# 添加到shell的参数个数
    • $0 shell本身的文件名
    • $1~#n 添加到shell的各个参数
    • makefile中的用法
      • $@ 目标集合
      • $% 当目标时函数库文件时, 表示其中的目标文件名
      • $< 第一个依赖目标,如果依赖目标时多个,逐个表示依赖目标
      • $? 比目标新的依赖目标集合
      • $^ 所有依赖目标的集合, 会去除重复的依赖目标
      • $+ 所有依赖目标的集合, 不会去除重复的依赖目标
      • $* 这个是GNU make特有的,其他的make不一定支持
  • test

    • 可以判断表达式, 字符串和整数
    • test 命令可以用 [空格 表达式 空格]来替代
    • 用法很多,百度一下很多参考
  • realpath
    • 由相对路径转换为绝对路径
  • strip [string]
    • 去空格函数
  • info 之前不知道这个命令, 不好调试Makefile
    • shell中打印信息, 变量或者中间变量
  • filter
    • 以 pattern 模式过滤 text, 保留符合 pattern的单词,可以有多个模式, 举例
    • @echo $(filter %.o %.a, program.c program.o program.z)
  • filter-out
    • 反过滤函数, 返回不符合 pattern 的字符串, 举例
    • @echo $(filter-out %.o %.a, program.c program.a program.o)
  • eval
    • eval command-line 结果是shell在执行命令之前扫描它两次,如
      • pipe=”|”
      • eval ls $pipe wc -l
      • shell 第一次扫描时,替换出pipe的值|, 接着eval使他再次扫描命令行
    • eval echo $$#取得最后一个参数
    • 其他高级用法可以百度
  • foreach
    • $(foreach [var];, [list];, [text];) 意思时把参数list中的单词逐一取出放到参数var所指定的变量中,然后再执行text所包含的表达式
  • word 取单词函数
    • $(word [n], [text]) 返回text中的第n个单词
    • $(word 2, too bar baz) 返回值为bar
  • words 去单词个数
    • $(words [text])
  • wordlist 取单词函数
    • $(wordlist [s],[e],[text]) 从字符串 text中取从s开始到e的单词串 s,e为数字
    • $(wordlist 2,3, foo bar baz) 返回值是bar baz
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值