bash 指令碼編程五 條件陳述式

結合前面的例子,來寫一個條件運算式。如果第一個參數沒有,則輸出no parameter,否則輸出第一個參數。#!/bin/bashif [ -n "$1" ]then echo "1st parameter: $1"else echo "no parameter"fi輸入帶參數命令:$ ./test.sh 'this is a test'1st parameter: this is a test輸入無參數命令:$ ./test.shno parameter先解釋一下條件陳述式:if

bash 指令碼編程七 將命令輸出儲存到變數中

`符號包含的命令執行完後,可以講其輸出結果儲存到變數中#!/bin/bash v=`java -version`echo $v執行結果:$ ./install.shjava version "1.6.0_34"Java(TM) SE Runtime Environment (build 1.6.0_34-b04)Java HotSpot(TM) 64-Bit Server VM (build 20.9-b04, mixed

weak_ptr解除循環參考

先看一下shared_ptr的正確用法:class A {public: A() { cout << "A::A()" << endl; } ~A() { cout << "A::~A()" << endl; } shared_ptr<B> b;};class B {public: B() { cout << "B::B()"

enable_share_from_this功能介紹

這個類很有意思,讓一個被shared_ptr管理生命週期的類能夠在自己的成員函數內部訪問shared_ptr。有點繞。舉個例子,下面的代碼在函數f內部通過this構造了shared_ptr對象,然後列印x_的值。class B {public: B(): x_(4) { cout << "B::B()" << endl; } ~B() { cout << "B::~B()" << endl;

CppCMS 編譯安裝

CppCMS是以色列人Artyom寫的一個用於開發Web application和web service的C++開源庫。據說效能很高,我正在試用。這裡記錄下UBuntu 11.04如何編譯和安裝。確保依賴庫已經安裝:sudo apt-get install build-essential libpcre3-dev libicu-dev libgcrypt11-dev zlib1g-dev

CppCMS和Nginx協同工作

為什麼需要NginxCppCMS自己已經支援Http訪問,為什麼還需要Nginx.一些原因是我們需要動態Server Load Balancer,還有原因是安全問題。下面的文字來自於CppCMS網站。CppCMS provides basic implementation of HTTP protocol and thus it can run behind reverse HTTP Proxy. But this option is not recommended for use in

bash 指令碼編程八 匹配命令輸出

當輸入java -version的時候,如果安裝了jdk,會輸出類似下面的資訊:$ java -versionjava version "1.6.0_34"Java(TM) SE Runtime Environment (build 1.6.0_34-b04)Java HotSpot(TM) 64-Bit Server VM (build 20.9-b04, mixed mode)可以用expr match對輸出結果進行尋找,如果找到子字串"java version",就認為Java可用。#!/

bash 指令碼編程九 函數

將前面的檢查java代碼封裝為函數,然後再調用之,指令碼修改如下:#!/bin/bash #check java is available in this sessionfunction hasJava { v=`java -version 2>&1` echo 'check java platform...' pos=`expr match "$v" 'java'` if [ $pos -gt 0 ] thenreturn 1

bash 指令碼編程十 將函數放在庫檔案

現在將檢查java的函數放在另一個檔案check.sh中#!/bin/bash #check java is available in this sessionfunction hasJava { v=`java -version 2>&1` echo 'check java platform...' pos=`expr match "$v" 'java'` if [ $pos -gt 0 ] thenreturn 1 elsereturn 0

Ubuntu12.04安裝kvm

為了在一台伺服器上虛擬出多個Ubuntu server,用於叢集。考慮了幾個方案,Vmware因為價格被排除,VirtualBox不錯,不過KVM由於是Linux核心層的,效能更好。優先考慮使用。首先在一台實驗機器上安裝Ubuntu 12.04 amd64 server。升級系統補丁以及核心。hostname是kvmhost. IP是10.112.18.177. 主板上已經開啟了虛擬化功能。好。現在開始安裝kvm。sudo -s

function object研究之四

將函數指標封裝成function object在前面介紹了function object是STL演算法的主要使用方式。如果能將現有的函數指標,函數,成員函數等等都封裝成function object,就可以獲得STL演算法的支援,而且可以減少專門編寫function object的工作量。基本思路仍然是構造一個function object,內部能夠轉調函數指標。bool foo(int x){ return x>=2;}typedef bool

function object研究之五

巧妙的檢測預留位置boost提供了從_1到_9的預留位置,它們是9個變數。這些變數本質上都是一個模板類的執行個體化對象,特殊之處在於這個模板類arg<> 只接收1-9 的整數作為模板參數。下面詳細介紹如何檢測模板參數,並且當模板參數不符合要求時如何做到編譯報錯。具體定義如下:boost::arg<1> _1;boost::arg<2> _2;boost::arg<3> _3;boost::arg<4> _4;boost::arg<

Ubuntu KVM host 網路問題

接上一篇文章:http://blog.csdn.net/sheismylife/article/details/8010040上一篇我的文章完成後,會有一些奇怪的現象:1.其他機器ssh登入上host後,過一會兒就不能串連了,然後ssh無法登入,直到重新啟動host機器的網路服務。(經查明,公司網路中和另一台機器IP衝突)2.host機器無法連外網3.路由表中缺少這一行:ip route listdefault via 10.112.18.254 dev

function object研究之三

 支援傳回型別目前的function_object_ref版本只能支援void傳回型別。我希望能夠讓它支援多種傳回型別,最簡單的方法是添加一個模板參數。請看下面的代碼:template<typename function_object_type,typename element_type,typename return_type>class function_object_ref{public: explicit

function object研究之十四 unwrap

template<class F> struct unwrapper{ static inline F & unwrap( F & f, long ) { return f; } template<class F2> static inline F2 & unwrap( reference_wrapper<F2> rf, int ) { return rf.get(); }

gcc 編譯動態庫和靜態庫

文章目錄 2.1 首先編譯源檔案產生對象(obj)檔案(main.o, hello_fn.o):2.2 然後從對象檔案編譯動態庫檔案(libhello.so)和靜態庫(libhello.a)3.1 如果不連結庫的情況下編譯一個主程式是:3.2 連結到動態庫libhello.so3.3 連結到靜態庫libhello.a Linux C 編程入門之一:gcc 編譯動態庫和靜態庫cheungmine20121

function object研究之十五 list1分析

首先看一下bind.hpp中的list0模板定義:class list0{public: list0() {} template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); } template<class T> T const & operator[] (_bi::value<T> const & v)

checked_delete提升安全性

boost提供了一個安全的用於delete模板函數,在檔案checked_delete.hpp中:template<class T> inline void checked_delete(T * x){ // intentionally complex - simplification causes regressions typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; (void)

function object研究之十一 addressof

來看看boost::detail::addr_impl_ref模板,在addressof.hpp檔案中:template<class T> struct addr_impl_ref{ T & v_; inline addr_impl_ref( T & v ): v_( v ) {} inline operator T& () const { return v_; }private: addr_impl_ref &

function object研究之十六 listN分析

list2 通過繼承storage2來包含兩個成員a1_和a2_struct logical_and;struct logical_or;template< class A1, class A2 > class list2: private storage2< A1, A2 >{private: typedef storage2< A1, A2 > base_type;public: list2( A1 a1, A2 a2 ):

總頁數: 61357 1 .... 18109 18110 18111 18112 18113 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.