天天看點

Linux學習記錄Linux下編譯c++檢視系統CPU數量運作腳本 ./hello.shshell變量

Linux下編譯c++

c++98

g++ -o 可執行檔案名   檔案名.cpp           

當出現如下報錯資訊的時候,請使用c++11版本的編譯

in C++98 ‘arr’ must be initialized by constructor, not by ‘{...}’      
vector<int>arr={ 0, 13, 24, 35, 46, 57, 60, 72, 87};           

c++11

g++ -std=c++11 檔案名.cpp -o 可執行檔案名           

檢視系統CPU數量

grep 'model name' /proc/cpuinfo | wc -l           

運作腳本 ./hello.sh

用/hello.sh而不是 hello.sh,是為了告訴系統,可執行檔案在目前目錄中去尋找。否則Linux系統會去PATH裡尋找有沒有叫 hello.sh的。

shell變量

Shell程式設計中一般分為三種變量:

1、我們自己定義的變量(自定義變量): 僅在目前 Shell 執行個體中有效,其他 Shell 啟動的程式不能通路局部變量。

2、Linux已定義的環境變量(環境變量, 例如:$PATH, $HOME 等..., 這類變量我們可以直接使用),使用 

env

 指令可以檢視所有的環境變量,而set指令既可以檢視環境變量也可以檢視自定義變量。

3、Shell變量 :Shell變量是由 Shell 程式設定的特殊變量。Shell 變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了 Shell 的正常運作

常用的環境變量:

PATH      決定了shell将到哪些目錄中尋找指令或程式 
HOME      目前使用者主目錄 
HISTSIZE 曆史記錄數 
LOGNAME   目前使用者的登入名 
HOSTNAME 指主機的名稱 
SHELL     目前使用者Shell類型 
LANGUGE  語言相關的環境變量,多語言可以修改此環境變量 
MAIL     目前使用者的郵件存放目錄 
PS1      基本提示符,對于root使用者是#,對于普通使用者是$           

使用 Linux 已定義的環境變量:

比如我們要看目前使用者目錄可以使用:

echo $HOME 

指令;如果我們要看目前使用者Shell類型 可以使用  

echo $SHELL 

指令。可以看出,使用方法非常簡單。

使用自己定義的變量:

#!/bin/bash

#自定義變量hello

hello="hello world"

echo $hello

echo "helloworld!"           
Linux學習記錄Linux下編譯c++檢視系統CPU數量運作腳本 ./hello.shshell變量

Shell 字元串入門

字元串是shell程式設計中最常用最有用的資料類型(除了數字和字元串,也沒啥其它類型好用了),字元串可以用單引号,也可以用雙引号。

單引号字元串:

#!/bin/bash

name='SnailClimb'

hello='Hello, I  am '$name'!'

echo $hello           

輸出内容:

Hello, I am SnailClimb!           

雙引号字元串:

#!/bin/bash

name='SnailClimb'

hello="Hello, I  am "$name"!"

echo $hello           
Hello, I am SnailClimb!           

Shell 字元串常見操作

拼接字元串:

#!/bin/bash

name="SnailClimb"

# 使用雙引号拼接

greeting="hello, "$name" !"

greeting_1="hello, ${name} !"

echo $greeting  $greeting_1

# 使用單引号拼接

greeting_2='hello, '$name' !'

greeting_3='hello, ${name} !'

echo $greeting_2  $greeting_3           

輸出結果:

Linux學習記錄Linux下編譯c++檢視系統CPU數量運作腳本 ./hello.shshell變量

擷取字元串長度:

#!/bin/bash

#擷取字元串長度

name="SnailClimb"

# 第一種方式

echo ${#name}
 
#輸出 10

# 第二種方式

expr length "$name";

           

輸出結果:

10

10           

使用 expr 指令時,表達式中的運算符左右必須包含空格,如果不包含空格,将會輸出表達式本身:

expr 5+6   // 直接輸出 5+6

expr 5 + 6   // 輸出 11           

對于某些運算符,還需要我們使用符号"\"進行轉義,否則就會提示文法錯誤。

expr 5 * 6 // 輸出錯誤

expr 5 \* 6   // 輸出30           

截取子字元串:

簡單的字元串截取:

#從字元串第 1 個字元開始往後截取 10 個字元

str="SnailClimb is a great man"

echo ${str:0:10}   #輸出:SnailClimb           

根據表達式截取:

#!bin/bash

#author:amau

var="http://www.runoob.com/linux/linux-shell-variable.html"

s1=${var%%t*}  

#h

s2=${var%t*}

#http://www.runoob.com/linux/linux-shell-variable.h

s3=${var%%.*}

#http://www

s4=${var#*/}

#/www.runoob.com/linux/linux-shell-variable.html

s5=${var##*/}

#linux-shell-variable.html