Makefile & GDB & Shell

Makefile(编译工程,要求读懂)


target : depengency

          ( Tab 字符)  command 


实例

第一步.

vim Makefile 

第二步.  

hello : hello.o

 (Tab 键 空4格) gcc hello.o -o hello

hello.o : hello,c

(Tab gcc -c hello.c -o hello.o) //可删,隐含规则


<=>


Target = hello

Object = hello.o, print.o

$(Target) :$(Object)

(Tab) gcc $(Object) -o $(Target) //只有 command 需要缩进

$(Object) : hello.c

print.o : print.c


第三步.make


print.c

#include <stdio.h>


void print(char *s)

{

 printf("%s", s);

}


make clean //清除文件

实例

clean :

 (Tab) rm *.o hello //清除 所有 .o 文件 以及hello文件


.PHONY :clean //防止存在同名 clean 文件



GDB



gcc test.c -o test -g //加上 -g 可使用调试工具


gdb test // gdb + 文件名

l // list 列出10行 // 一次显示10行 ,l + n 从 n 行显示

b // break b 17 //17 行设置断点 b main // 在main 处设置断点

info b // 查找断点

delete n // 删除第 n 个断点

r // run 运行

n // next 下一行 // 不进入函数

s // step 下一步 // 可进入函数运行

c // continue 继续

return // 返回 在函数中可使用,从当前函数返回

q // 退出




Shell // 命令解析器 .sh // 脚本



#!/bin/sh //命令的集合

Tmp = "hello"

echo (输出) echo "hello" > a // 覆盖 >> //追加

echo ${Tmp}

mkdir $1 // 创建第一个参数的同名目录

./shell.sh  1  2  3 //追加参数1 2 3(命令行参数)


#在脚本内为注释符号             cat + 文件  // 显示

for dir(变量) in $1 $2 $3 $4 $5    //  命令后+ 空格

do

mkdir $dir

 cd $dir

 touch $dir

 echo "hello $dir" > $dir

 cd ..

done


注意: 赋值‘=’,两边都不能空格,否则不变色,会有报错

Path.sh //判断所给 是文件还是目录

#! /bin/bash

PATH = "/home/155/Shell/test.sh" || 空格 一定要空

if [ || -d $PATH || ]; || then

echo "DIR"

elif [ || -f $PATH || ]; || then

echo "FILE"

fi

if [ || -z $PATH || ]; || then

echo "ERROR"

exit

fi


#! /bin/sh

read key (C 内的scanf,从键盘输入)

case "${key}" in

 [ A - Z ] ) echo "UpperLetter" ;;

 [ a - z ] ) echo "LowerLetter" ;;

 [ 0 - 9 ] ) echo "Number" ;;

* ) echo "ERROR" ;;

esac

注意 : Shell 与 C有差别 可用 ‘ecxport LANG C’进行修改


































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值