1. 程式人生 > >Ubuntu中編寫指令碼

Ubuntu中編寫指令碼

今天我在按照要求編譯應用程式的時候,以前我都是根據文件上的要求一條條命令去敲,我覺得很麻煩,於是我突發奇想我幹嘛不用一個指令碼去寫呢。

在這裡我簡單的介紹下寫指令碼的規範:

首先我們必須的建立一個指令碼檔案

例如;

vim  filename(檔案的名字隨便定)

這裡我之前想過這個指令碼檔案的屬性有沒有必要去定呢,於是我嘗試了下,沒有硬性要求,因為系統識別檔案的屬性是根據腳本里面的頭來判斷是什麼檔案屬性

建立檔案完了以後,我們首先要規範下指令碼的頭。

在Ubuntu中我們的頭是#!/bin/bash

但是在redhat裡面頭是不一樣的,redhat頭是#!/bin/sh這裡請大家注意下,因為如果頭出錯了不同的虛擬機器編譯就會有問題。

說到這裡我順便想提下另外一個細節:例如我們在Ubuntu裡面編譯應用程式的時候,假如我有一個#include<Funtion.h>檔案

但是我們在另外一個.c檔案要呼叫這個Funtion.h標頭檔案。我們在.c檔案中寫#include “funtion.h”和#include“Funtion.h”這兩種形式都能編譯的過去,這只是對我Ubuntu的版本

但是RedHat 則只能規範的寫成#include“Funtion.h”對應的模式,不能寫成#include “funtion.h”。否則就會編譯出錯

我在這裡簡單的寫個指令碼:

假如你想在某個應用程式資料夾中改變一個字型檔的屬性,然後每次執行的時候,自動把這個字型檔複製到另外一個資料夾中,然後再編譯一個對應的英文版本出來

#!/bin/bash (#!/bin/sh   (RedHat))

chmod  777   /res/* 

這裡可以加寫列印資訊什麼的,如:echo "chmod  file success!"(按照個人需求加或者不加)

cp    -r    /res/*   /mdvr/font 

加列印如:echo "cp file success!"

make  ver=T15101101  LANGUAGE_D=ENG(這個編譯法只是對於我的應用程式編譯方式,不同公司產品版本的編譯方式不同)

加列印:echo "make file has succedd!"

注:這裡加列印資訊主要是看你的指令碼執行到哪一步,更好的瞭解。

:wq儲存下

出去執行 bash filename或者./filename  

我這裡只是舉了一個小的例子,這樣你每次只要一步就能到位,是不是很方便,比咱們一步步敲命令是不是快多了 ,

以後如果對於複雜點的程式流程都可以自己試著用指令碼來寫,這樣提高工作效率。

如果想嘗試寫個小指令碼的,可以借鑑的試試。