用于iOS的shell脚本学习记录
前言
最近在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.42.png
注意:如果 没有成功报出问题::
Permission denied。就是没有权限。
解决办法:
修改该文件test.sh 的权限 :使用命令:
chmod 777 test.sh 。
哈哈,后面就可以开始写和运行了
基本操作
echo
echo 是一个输出命令,可以用来输出数字、变量、字符串等;本例中,我们使用 echo 来输出字符串。在vim 终端中
shell变量
如上图所示的Test就是变量,它只能使用数字,字母和下划线,且不能以数字开头。变量名区分大小写
循环
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基本学习.