Bash 使用终端从iOS模拟器删除应用程序
我正在尝试使用在构建服务器上运行的脚本从iOS模拟器中删除应用程序Bash 使用终端从iOS模拟器删除应用程序,bash,unix,terminal,Bash,Unix,Terminal,我正在尝试使用在构建服务器上运行的脚本从iOS模拟器中删除应用程序 #!/bin/Bash #Go to iOS Sim cd ~/Library/Application\ Support/iPhone\ Simulator #Loop through each Version of iOS for dir in ~/Library/Application\ Support/iPhone\ Simulator/*/ do dir=${dir%*/} cd "$dir"
#!/bin/Bash
#Go to iOS Sim
cd ~/Library/Application\ Support/iPhone\ Simulator
#Loop through each Version of iOS
for dir in ~/Library/Application\ Support/iPhone\ Simulator/*/
do
dir=${dir%*/}
cd "$dir"
#Check if the iOS version has any apps installed
if [ -d "$dir/Applications" ]; then
echo Applications folder exists in "$dir"
cd "$dir/Applications"
#Delete each app
for app in "$dir/Application/*/"
do
echo $app
if [ "${#app}" -eq 36 ]; then
echo Delete Folder
fi
done
fi
done
我被困在
#删除每个应用程序部分。我想在Applications文件夹中循环,首先检查文件夹的字符数是否为36(GUID),然后删除文件夹我只想使用您手边的大量(非常棒的)实用程序来完成这类工作。你可以用像
LENGTH=`echo $app | wc -c`
if [[ $LENGTH -eq 36 ]]; then
# do the thing
fi
注意:这里的神奇之处在于使用反勾号和wc(wordcount)实用程序。当您查看wc的手册页时,签出tr(仅部分相关,但这是knw的另一个优秀工具)。如果您在引号中有一个*
,bash将逐字解释它,而不是作为一个glob。您可以将的更改为:
for app in "$dir"/Application/*/
当然你已经进入了目录,所以
for app in */
这可能是您想要做的如果您想要像这样测量字符串的长度,您应该使用echo的-n
选项,否则您也将计算换行符(并引用“$app”变量,以防它有连续的空格)。但是表达式“${#app}”
也给出了长度,OP的问题在其他地方。