美文网首页ios开发
用于iOS的shell脚本学习记录

用于iOS的shell脚本学习记录

作者: timeQuick | 来源:发表于2019-03-07 22:29 被阅读0次

    前言

    最近在Xcode 工作space中建立了多个frameWork,进行功能组件开发。在主App里面运用shell把各个组件中的.framework与.boudle资源文件拷贝到工作目录下,以此方式来做一个组件化app。以及在framework中有shell写输出一个支持真机与模拟器的framework.随开始学习shell.

    shell

    Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件。
    常见的 Shell 有 sh、bash、csh、tcsh、ash 等。
    1.sh 的全称是 Bourne shell。sh 是 UNIX 上的标准 shell,很多 UNIX 版本都配有 sh。sh 是第一个流行的 Shell

    查看shell

    Shell 是一个程序,一般都是放在/bin或者/user/bin目录下,


    shell.png

    思考中

    到了这里,我想怎样在我的mac笔记本上,编辑运行写的脚本呢……
    于是网上查了资料
    第一步在sublime下编写shell脚本
    在sublime中新建文件,保存文件的后缀名为.sh就可以开始编辑了。然后在终端中 命令行运行。

    屏幕快照 2019-03-07 下午11.02.25.png
    屏幕快照 2019-03-07 下午11.02.42.png
    注意:如果 没有成功报出问题::
    Permission denied。就是没有权限。
    解决办法:
    修改该文件test.sh 的权限 :使用命令:
    chmod 777 test.sh 。

    哈哈,后面就可以开始写和运行了

    基本操作

    echo
    echo 是一个输出命令,可以用来输出数字、变量、字符串等;本例中,我们使用 echo 来输出字符串。在vim 终端中

    sh 屏幕快照 2019-03-09 下午12.50.13.png
    shell变量
    如上图所示的Test就是变量,它只能使用数字,字母和下划线,且不能以数字开头。变量名区分大小写

    循环

    屏幕快照 2019-03-09 下午8.04.19.png 屏幕快照 2019-03-09 下午8.04.09.png

    cp复制
    cp s1 s2:将s1文件复制一份名为s2的文件
    cp -r dir1 dir2:将dir1的全部内容复制到dir2里面

    mv 移动或改名
    mv t1 t2:将t1的名字换为t2
    mv dir1 dir2:将dir1的目录变为dir2的目录

    rm删除
    rm 文件名:删除文件,注意被删除的文件不会出现在废纸篓中哦,谨慎使用!
    rm -r dir:删除dir下的所有档案
    rmdir 文件夹名:删除文件夹
    rm -rf:删除目录下的所有文件,谨慎使用!

    其它重要的
    mkdir 文件夹名:在当前目录下创建文件夹
    pwd:显示当前路径
    telnet ip地址:链接到指定ip上
    df:显示硬盘空间使用情况
    dv:检测一个目录和所有它的子目录中文件占用磁盘情况
    date:显示系统时间
    shutdown:关机

    在Xcode写的一个拷贝文件的命令

    filePath="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework"
    
    echo $filePath
    adfilepath="${SRCROOT}/../Resource.bundle/"
    
    adfilepath2="${SRCROOT}/../Resource/TestFundsResource/"
    
    filelist=`ls ${filePath}`
    nib='nib'
    sb='storyboardc'
    for file in $filelist
    do
    extension=${file##*.}
    if [ $nib == $extension ];then
    cp -Rf $filePath'/'$file $adfilepath
    cp -Rf $filePath'/'$file $adfilepath2
    fi
    if [ $sb == $extension ];then
    cp -Rf $filePath'/'$file $adfilepath
    cp -Rf $filePath'/'$file $adfilepath2
    fi
    
    done
    

    支持真机与模拟器的

    if [ "${ACTION}" = "build" ]
    then
    INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework
    DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework
    SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework
    
    if [ -d "${INSTALL_DIR}" ]
    then
    rm -rf "${INSTALL_DIR}"
    fi
    mkdir -p "${INSTALL_DIR}"
    
    if [ -d "${DEVICE_DIR}" ] && [ -d "${SIMULATOR_DIR}" ]; then
    
    cp -r "${DEVICE_DIR}/" "${INSTALL_DIR}/"
    
    lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"
    fi
    fi
    

    自己学习资料是
    shell基本学习.

    相关文章

      网友评论

        本文标题:用于iOS的shell脚本学习记录

        本文链接:https://www.haomeiwen.com/subject/drkkpqtx.html