Shell 基礎(變數設定,awk工具)

2021-10-02 23:58:22 字數 2240 閱讀 9393

目錄概述

變數常用 (vim + awk)

shell從誕生之初,就和普通的pc使用者無緣了,工程師應該會喜歡shell,maybe是這個樣子的。

shell 提供了你和作業系統linux之間的通訊方式。

shell的工作方式有兩種

你在終端寫出的shell命令,計算機是無法直接理解的,需要shell直譯器來完成翻譯工作,shell直譯器有多種,使用如下的命令來檢視當前機器有哪些shell

cat /etc/shells
執行指令碼的方式

關於使用者自定義變數,比較需要注意的地方:

重要:但凡指令碼定義變數的時候,不帶$,再次使用的時候都需要新增$

變數的獲取

下面舉個例子說明下$* 和$@

1 2 312

3#/bin/bash

for i in "$*"

do    echo "$i"

done

for i in "$@"

do    echo "$i"

done

強調一點,在日常寫shell指令碼的時候,如果獲取變數要養成新增 ""  的習慣,""能夠獲取變數值,即便不寫也是ok的,如果能夠獲取到變數,vim能夠表現出特定的顏色,但是新增""是乙個好的習慣。

變數的獲取中:

具體看下面的示例

$command

2019

'2019'

"$command"

2023年 01月 09日 星期四 00:26:08 cst

#/bin/bash

command=$1

echo   '$command'

echo   "$command"

echo   "'$command'"

echo   '"$command"'

echo   `date`

ps:如果不新增echo,直譯器會認為每一行是一句命令。其實,直譯器認為每一行都是命令。

資料運算在shell中:"$((表示式))" 或者是 "$[()]" 這裡尤其是"" 和 $

3介紹幾個有用的vim模式中非常有用的快捷鍵:

兩個有用的系統函式

作用如下:

[root@hadoop102 shell]# basename /root/shell/if.sh

if.sh

[root@hadoop102 shell]# dirname /root/shell/if.sh

/root/shell

shell的文字分析工具有cut、sed、最強大的就是awk,具體說說awk,awk是貝爾實驗室在77年搞出來的文字編輯神器,這個強大的文字分析工具,把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行分析處理。cut能實現的,awk都能實現。基本用法:awk [選項引數] 『pattern1  pattern2...』 filename;

awk的處理流程:首先拿出第一行,然後匹配第乙個模板,如果匹配上,就執行action1,如果匹配不上,就什麼都不執行,然後匹配第二個模板,匹配上就執行action1,匹配不上就什麼也不執行。下面僅舉出乙個例子,取出第三行的daemon字串

[root@hadoop103 shell]# cat passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@hadoop103 shell]# awk -f : '/^daemon/'  /etc/passwd

daemon

$5表示取出的是第五列,$0表示取出整行,^example的意思是匹配以example為開頭的字串。

上初中的時候猛然照鏡子的時候發現,是不可能的,這輩子都不可能了;

大四畢業的時候發現高一買的的衣服還穿在身上,是不可能的了,這輩子都不可能了;

,還有可能。

shell指令碼學習;

shell的基本常用命令

shell學習(cut,sed,awk,sort)

[shell之awk](

awk 變數傳到shell

今天之前的同事問我乙個關於awk的問題。他的意思是通過awk操作獲得的幾行資料是不定的,需要將獲得的幾行資料存到乙個陣列中,又不想使用迴圈。經過一下午的努力。終於實現了。最終命行eval ps ef grep tomcat awk sed home d sed s home g sed s g aw...

awk使用shell變數,shell獲取awk中

這裡提到awk,相信寫shell的朋友都會接觸到。awk 是一種用於處理文字的程式語言工具。awk 提供了極其強大的功能 可以進行正規表示式的匹配 樣式裝入 流控制數 算符 程序控制語句 內建的變數和函式 可以把awk看作一門完全的程式語言,它處理文字的速度是快得驚人的。現在很多基於shell 日誌...

shell程式設計 awk基礎

語法格式 一awk begin patternend file name 二standard output awk begin patternend 基本格式 awk begin patternend begin 文字處理前所做的處理 pattern 對文字具體的處理 end 文字處理後所做的處理 ...