linuxshell字元
Ⅰ linux:用shell如何實現讀取一個字元串的第n個字元呢
代碼如下:
str="/home/gateman"
if [ ${str:0:1} = "/" ]; then
echo "yes'
fi
${str:0:1} 中0表示從第幾個字元開始,1表示截取多長。
Shell是一種腳本語言,那麼,就必須有解釋器來執行這些腳本,常見的腳本解釋器有:
bash:是Linux標准默認的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的縮寫,內部命令一共有40個。
sh:由Steve Bourne開發,是Bourne Shell的縮寫,sh 是Unix 標准默認的shell。
另外還有:ash、 csh、 ksh等。
(1)linuxshell字元擴展閱讀
Linux shell 截取字元變數的前8位:
實現方法有如下幾種:
expr substr 「$a」 1 8
echo $a|awk 『{print substr(,1,8)}』
echo $a|cut -c1-8
echo $
expr $a : 『(.\).*』
echo $a|dd bs=1 count=8 2>/dev/null
按照指定要求分割:
比如獲取後綴名
ls -al | cut -d 「.」 -f2
小結:shell對應字元串的處理方法很多,根據需求靈活選擇。
在做shell批處理程序時候,經常會涉及到字元串相關操作。有很多命令語句,如:awk,sed都可以做字元串各種操作。 其實shell內置一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程序等時間,因此速度會非常的快。
Ⅱ 每天三分鍾搞定linux shell腳本10 字元串相關的if判斷
字元串比較包括
注意 :這里的符號要 轉義 ,否則變成了重定向了。
運行結果:
注意 :上面的 等號左右兩側 , 中括弧內側 一定要有空格
運行結果:
以上的例子,說明 小寫字母排在字典的後面 (類似於ascii的大小)。
sort 可以對字元串排序,sort 命令會把小寫字母放在前面 。
運行結果:
注意上面的 中括弧內側 一定要有空格。
注意 :有時候想在字元串比較的時候使用 正則表達式 ,可以使用 雙方括弧 ,如:
運行如下:
注意:上面的 雙等號左右兩側,中括弧內側 一定要有空格
Ⅲ Linux shell腳本中連接字元串的方法
這篇文章主要介紹了Linux
shell腳本中連接字元串的方法,大家參考使用吧
如果想要在變數後面添加一個字元,可以用一下方法:
代碼如下:
$value1=home
$value2=${value1}"="
echo
$value2
把要添加的字元串變數添加{},並且需要把$放到外面。
這樣輸出的結果是:home=,也就是說連接成功。
又如:
代碼如下:
[root@localhost
sh]#
var1=/etc/
[root@localhost
sh]#
var2=yum.repos.d/
[root@localhost
sh]#
var3=${var1}${var2}
[root@localhost
sh]#
echo
$var3
/etc/yum.repos.d/
Ⅳ linux在shell下如何將字元串寫入文件
可以使用echo命令將文本流導向標准輸出,然後再使用>符號重新定向標准輸出到文件。x0dx0a用法示例:x0dx0a將字元串"hello world"寫入文件file.txt中x0dx0a$ echo "hello world" > file.txtx0dx0a然後再嘗試用cat命令從讀取文件並寫入到標准輸出,可以看到字元串已經成功寫入文件。x0dx0a$ cat file.txt
Ⅳ linux shell 用sed命令在文本的行尾或行首添加字元
最後還是想用簡單的腳本解決,發現使用 sed 命令可以方便得在文件每一行後添加一個字元。首先看一下 sed 命令。
sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為「模式空間」 (pattern space) ,接著用 sed 命令處理緩沖區中的內容,處理完成後,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容並沒有 改變,除非你使用重定向存儲輸出。 Sed 主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。
假設處理的文本為 test.file ,在每行的頭添加字元,比如 HEAD ,命令如下:
在每行的行尾添加字元,比如 TAIL ,命令如下:
幾點說明:
這樣就處理完了!總之恰當使用sed命令是可以避免來回打開文件造成的時間浪費,可以使用sed命令在linux腳本中做一些更好玩的事情。希望這篇文章可以給你一些幫助~
Ⅵ Linux Shell的提示字元設置 - PS1變數用法
當每次在Linux中使用回車執行命令之後,都會回到最開始的提示字元處,這個過程就是取用了set命令下自定義變數PS1的值。
此處的 [\u@\h \W]\$ 就是 [cadmin@localhost ~]$ 的通用格式,通過修改PS1變數可以達到修改提示字元的目的。在這之前,需要先了解此處用的符號含義:
經過調整,自己最習慣的排列方式為 \u @ \h:\w\$
PS1中的顏色參數格式為\[\e[F;Bm\],F代表文本前景色,B代表背景色,這一串參數的位置就是這個顏色開始生效的位置,且後出現的顏色參數會覆蓋前面的顏色參數。
例如 \[\033[01;32m\]\u @ \h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 賦值給PS1後,提示字元變成:
在當前shell裡面的修改都只是暫時性的,只有將對應變數的賦值加入到對應用戶的.bashrc下,才能在啟動時就生效。
在文件最後加上 PS1="\[\033[01;32m\]\u @ \h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$" ,然後 source .bashrc 即可。
Ⅶ linux shell中的比較符號與特殊符號介紹
shell字元串比較、判斷是否為數字
二元比較操作符,比較變數或者比較數字。注意數字與字元串的區別。
整數比較
-eq 等於,如:if [ "$a" -eq "$b" ]
-ne 不等於,如:if [ "$a" -ne "$b" ]
-gt 大於,如:if [ "$a" -gt "$b" ]
-ge 大於等於,如:if [ "$a" -ge "$b" ]
-lt 小於,如:if [ "$a" -lt "$b" ]
-le 小於等於,如:if [ "$a" -le "$b" ]
< 小於(需要雙括弧),如:(("$a" < "$b"))
<= 小於等於(需要雙括弧),如:(("$a" <= "$b"))
> 大於(需要雙括弧),如:(("$a" > "$b"))
>= 大於等於(需要雙括弧),如:(("$a" >= "$b"))
字元串比較
= 等於,如:if [ "$a" = "$b" ]
== 等於,如:if [ "$a" == "$b" ],與=等價
注意:==的功能在[[]]和[]中的行為是不同的,如下:
1 [[ $a == z* ]] # 如果$a以"z"開頭(模式匹配)那麼將為true
2 [[ $a == "z*" ]] # 如果$a等於z*(字元匹配),那麼結果為true
3
4 [ $a == z* ] # File globbing 和word splitting將會發生
5 [ "$a" == "z*" ] # 如果$a等於z*(字元匹配),那麼結果為true
一點解釋,關於File globbing是一種關於文件的速記法,比如"*.c"就是,再如~也是.
但是file globbing並不是嚴格的正則表達式,雖然絕大多數情況下結構比較像.
!= 不等於,如:if [ "$a" != "$b" ]
這個操作符將在[[]]結構中使用模式匹配.
< 小於,在ASCII字母順序下.如:
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
注意:在[]結構中"<"需要被轉義.
> 大於,在ASCII字母順序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
注意:在[]結構中">"需要被轉義.
具體參考Example 26-11來查看這個操作符應用的例子.
-z 字元串為"null".就是長度為0.
-n 字元串不為"null"
鏈接:https://www.jianshu.com/p/6322715ad196
Ⅷ linux shell中幾種特殊變數和字元串的截取
簡單介紹下Shell字元串截取的詳細方法,如截取指定字數、按指定的字元串截取、按指定要求分割。
一、Linux shell 截取字元變數的前8位,有方法如下:
Ⅸ linux shell 字元串拼接方法
CROSS_COMPILE=arm-openwrt-linux-muslgnueabi-
echo $CROSS_COMPILE
方法1:
test1=$(echo $CROSS_COMPILE)gcc
echo $test1
方法2:
test2=${CROSS_COMPILE}gccabc
echo $test2
Ⅹ Linux shell 中單引號字元串裡面有單引號字元怎麼辦
Linux shell 中單引號字元串裡面有單引號字元解決:
$echo"mocha。reporter('spec')"|sed"s/'spec'/'json'/"
mocha.reporter('json')
有單引號的情況就用雙引號唄
$echo"mocha.reporter('spec')"|sed$'s/'spec'/'json'/'
mocha.reporter('json')
或者也可以這樣、加個$讓bash轉義
控制字元
轉義字元不屬於控制字元;控制字元也不屬於轉義字元。如果控制字元的定義是非圖形的字元,或者對輸出設備(列印機、文本終端)有特殊意義的字元,那麼針對這些設備的轉義字元也是控制字元。但是程序設計用的轉義字元是圖形字元,因此它們不是控制字元。相反地,大多數ASCII控制字元單獨都具有控制功能,因此它們不是轉義字元。