2012-12-07 68 views
0

我有這個腳本,它對一些文件做了幾個操作,然後在最後創建一個名爲flashable.zip的輸出文件。 我想實現,當用戶運行腳本,它開始時要求最終輸出文件名。文件名預定義如下所示:1.22.33_DA.zip,用戶可以選擇1.22.33部分 - 這就像版本命名文件一樣。它必須嚴格,所以用戶不要使用字母在1.22.33部分..讓用戶在bash中選擇輸出文件的名稱

我敢肯定,我可以使用像grep這樣的東西,但我完全迷失在如何做到這一點:( 而我是相當新的bash腳本,所以我還在學習,我得到的腳本可能看起來很亂,可能可以清理一下:)

我想這只是在操作完成時重命名創建的zipfile,但我不知道雖然..

這是我的sc ript:

#!/bin/bash 


echo "" 
echo "[--- Creating flashable zip ---]" 
echo "" 

tlock=/home/dan/buildtool/flashable/template/system/media/theme/default 
dst=/home/dan/buildtool/flashable/system/media/theme/default 
src=/home/dan/buildtool/translations/ma-xml-4.0-danish/extras/lockscreen 
parent=/home/dan/buildtool/flashable 
src2=/home/dan/buildtool/apk_out 
home=/home/dan/buildtool 

cd $parent 
mkdir system 
cd system 
mkdir app 
mkdir framework 
mkdir media 
cd media 
mkdir theme 
mkdir audio 
cd theme 
mkdir default 
cd $parent/system/media/audio 
mkdir ringtones 
mkdir alarms 
mkdir notifications 
cd $home 


for apk in $(<$home/translation_list.txt); do cp -r -f "$src2/$apk" $parent/system/app; done 

mv -f $parent/system/app/framework-miui-res.apk $parent/system/framework 
cp -f $parent/template.zip $parent/flashable.zip 
cp -f -r $parent/template/system/media/audio $parent/system/media 

7za u -tzip $tlock/lockscreen.zip $src/advance 
cp -f $tlock/lockscreen.zip $tlock/lockscreen 
cp -f $tlock/lockscreen $dst 
7za a -tzip $parent/flashable.zip $parent/system -mx3 

rm -r $parent/system 
cd /home/dan/buildtool 

回答

0

這將讀入用戶輸入並通過正則表達式驗證版本。

#!/bin/bash 
echo -n "Enter version and press [ENTER]: " 
read ver 
[[ "$ver" =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] && echo "${ver}_DA.zip" || echo "Invalid" 

輸出

Enter version and press [ENTER]: 111.222.333 
111.222.333_DA.zip 

Enter version and press [ENTER]: 1.2222.33 
Invalid 

Enter version and press [ENTER]: 1.222.3333 
Invalid 

說明

  • read ver讀取在用戶輸入到ver變量。
  • ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$

    1)^

    2的開始)[0-9]任何位至少1到3個字符

    4)\. 0和9之間

    3){1,3}匹配匹配點

    5)\.[0-9]{1,3} Re泥炭模式串的兩倍

    7)$比賽結束

+0

謝謝!稍微編輯一下,我就可以將它融入我的腳本:) – user1170663

相關問題