简单的shell文件编写:拷贝特定的可执行文件到某特定目录下。

2023-11-11

      写这个文件夹是为了把自己在fedora9上交叉编译的可执行文件复制到arm板上便于执行,这样每次都不用输入一长串文件名了,调用这个脚本,它会自动 拷贝ARM可执行文件到指定的目录下(例子是/home/stephen/stephenshare/examples)。而这个目录是nfs即被arm 板所远程挂载的。所以ARM板可以直接访问.

1. 创建sh文件:
我们vim /bin/stephencopyqtfiletoarm.sh
为什么放到/bin下?因为/bin被加入了默认的PATH,这样不用输入全路径就可执行了,看上去像个外部命令


chmod +x  /bin/stephencopyqtfiletoarm.sh 确保sh文件是可执行的

2. 编辑sh文件:
#!/bin/bash

cpfilename=`ls -l|grep ^-rwx|cut -d' ' -f8`
echo "copy file:" $cpfilename
cp $cpfilename /home/stephen/stephenshare/examples
if [ $? -eq 0 ] ;then
        echo "copy file success."
else
        echo "copy file error:"
        echo $?
fi
cp -r qml/* /home/stephen/stephenshare/examples/qml

if [ $? -eq 0 ];then
        echo "copy qml dir success."
else
        echo "copy qml dir error:"
        echo $?
fi

3. 调用:
在shell命令行下,输入前几个字母比如steph再按tab, 会自动出来sh的全名,这全归功于我们把它放在了/bin下,系统已经设好PATH了。

4. 要点:
1)ls -l|grep ^-rwx|cut -d' ' -f8
ls -l是列出所有文件列表
grep ^-rwx 是取出所有以-rwx开头的项
cut -d' ' -f8 其中-d' '是指以空格做为分隔符(默认是以TAB为分隔符的),-f8代表field 8 即第8个字段即文件名字段

2) if语句很无聊,非要加好几个空格,包括if 和[号之间。 多加几个空格便是。 注意]后要加分号。这也的确很变态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简单的shell文件编写:拷贝特定的可执行文件到某特定目录下。 的相关文章

随机推荐

  • OpenGL ES加载纹理

    iOS OpenGL ES加载纹理 GLKit 1 准备工作 创建UIViewController文件并继承GLKViewController 遵守协议GLKViewDelegate 实现协议方法 void glkView GLKView
  • [Vue warn] Failed to resolve component:报错问题。

    在一个vue3项目中 引入一个自定义组件时出现了 Vue warn Failed to resolve component 组件名 这样的警告 引入的组件没有出现在页面中 网上查了半天没找到原因 后来将vue3中的defineCompone
  • cs231n_反向传播求导篇

    我们已经知道基本的标量除以矩阵 或向量 矩阵 或向量 除以标量 以及稍微复杂一点的向量除向量 1 1 1 行向量除以向量除以矩阵 矩阵除以向量的方法 那么矩阵除以矩阵呢 例如 XN DWD C fN C X N
  • 用python+pytest框架写UI自动化

    使用 Python 编写 UI 自动化测试通常需要使用 Pytest 测试框架 下面是编写 Python Pytest UI 自动化测试的一般步骤 安装 Python Pytest 和相关的库 例如 Selenium WebDriver 和
  • WM_CHAR 获取键盘按下的字符

    DEMO3 11 CPP WM CHAR demo INCLUDES define WIN32 LEAN AND MEAN just say no to MFC include
  • QT-固定全局文字大小

    问题描述 W10 将缩放与布局设置为 gt 100 时 QT的文字会放大超过原来的文字框 解决 使用这种方法是让Windows来控制缩放 而不是Qt 添加一个资源文件qt conf 内容为 Platforms WindowsArgument
  • linux 时钟漂移,Redis 实现分布式锁之Redlock 算法浅析

    保证分布式锁有效的三个属性 Safety Properties 安全性 此处也就是互斥性 任意时刻只能有一个客户端可以持有锁 Liveness Property A 无死锁 即使持有锁的客户端崩溃或被分区 也可以获得锁 Liveness P
  • pandas中groupby函数中参数ax_index和group_keys的区别

    前言 笔者在学习pandas中groupby函数时 发现ax index True False和group key True False这两个参数相近又有所不同 特写出此文供大家分享 一 首先创建一个DataFrame df pd Data
  • thymeleaf模板报红

    问题 解决 忽略所有警告或错误 1 或者忽略Thymeleaf有关警告或错误 2 2 取消这个勾 关闭IDEA对于thymeleaf的数据验证选项
  • BP神经网络的详细推导

    文章目录 概述 一 神经元模型 二 感知机与多层网络 三 误差逆传播算法 四 全局最小与局部最小 五 BP算法的改进 1 引入动量法 2 尺度变换法 3 自适应学习率调整法 六 BP神经网络的训练 1 产生数据样本集 2 确定网络的类型和结
  • QMap倒序遍历

    for QList
  • 中英文期刊卷号和期号

    一 中文期刊 国内期刊为了给期刊排序方便查询 都按照时间分卷和期 卷是期之上的时间分类 卷是从创刊开始按照年度排序的编号 期是这一年中按时间排序的编号 比如2017年3月发表的论文 按照卷号期号排可能就是 第23卷第3期 国内对期刊卷号期号
  • 【简述】VSCode使用ssh连接linux服务器并安装使用jupyter notebook/Anaconda/pytorch

    1 通过管理员获得该Unbutu服务器的IP 账号 密码 2 打开VSCode 安装扩展Remote SSH 3 在VsCode左侧边栏点击Remote Explorer使用该扩展 新建Remote 输入IP 账号并连接 4 在上方弹出窗口
  • Unix/Linux编程:fork()进程详解

    文章目录 理论 进程 fork wait exec fork 实践 验证 fork函数被调用一次但返回两次 子进程和父进程之间不共享数据空间 父子进程间的文件共享 fork的内存语义 同步信号以规避 fork 之后的竞争条件 fork 解决
  • Flutter切换页面后保持状态不刷新

    1 使用IndexedStack实现 IndexedStack继承自Stack 它的作用是显示第index个child 其它child在页面上是不可见的 但所有child的状态都被保持 所以这个Widget可以实现我们的需求 我们只需要将现
  • PointNet介绍

    论文 PointNet Deep Learning on Point Sets for 3D Classification and Segmentation 代码 https github com charlesq34 pointnet 0
  • 【无标题】C++课程学习笔记(南科大于仕琪老师)

    这几天我突然想写CSDN了 前段时间我打开了我的CSDN 发现我其实只写了3篇文章 其实写CSDN是一个好习惯 我之前这么多年都没有发现这个好习惯 现在我要求自己只有有所心得就应该写下来 一方面与大家共勉 另一方面通过和大家的交流我希望自己
  • UDS诊断之负响应码

    1 0x10服务 服务诊断会话控制 否定响应码 NRC 定义 Defination 0x12 服务器支持诊断请求中的服务标识符 Service ID 但不支持收到的子功能参数时 回复此编码 0x13 请求服务的诊断报文中的数据长度与定义不一
  • Linux虚拟化网络之路由转发实战

    一 Linux路由配置 如果要在不同网段直接通讯 需要添加路由 Linux添加路由命令如下 route add del net host target netmask Nm gw Gw dev If add 添加一条路由规则 del 删除一
  • 简单的shell文件编写:拷贝特定的可执行文件到某特定目录下。

    写这个文件夹是为了把自己在fedora9上交叉编译的可执行文件复制到arm板上便于执行 这样每次都不用输入一长串文件名了 调用这个脚本 它会自动 拷贝ARM可执行文件到指定的目录下 例子是 home stephen stephenshare