日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

6,bash入门,for 循环, 编写最简单的脚本

發布時間:2025/3/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6,bash入门,for 循环, 编写最简单的脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? shell 是 一種 控制系統的腳本語言, bash 是 shell語言 的 解釋器 中 的 一種,也是 Linux 上 最流行的 的 一種, 不過 shell解釋器 有 很多種, 而且 每一種 都有 自己 的 特色, 不 是 完全 一樣 的。。, ??

????常見shell:

????????sh、csh、tcsh、bash、ksh、dash、zsh


bash 常用快捷鍵:

????Ctrl+a:????跳轉命令行首

????Ctrl+e:????跳轉命令行尾

????Ctrl+u:????刪除命令行首至當前光標所在處的內容

????Ctrl+k:???? 刪除當前光標所有處至命令行尾的內容

????Ctrl+l: ????清屏,相當于clear命令

????Ctrl+c: ????取消或終止

????Ctrl+z: ????將當前命令送至后臺執行

bash 命令補全

????按 "tab" 鍵 可 進行 命令 補全, 連按 兩下 可 顯示 命令 補全 列表, 這個 還是 很方便 的


編寫腳本,執行腳本:

????bash 腳本 是 以 “#! /bin/bash” 開頭 的, ?因為 bash 腳本 是 一種 解釋型 語言, 腳本 運行 時 需要 調用 解釋器 來 執行 代碼, "#!" 是 告訴 內核 這是 一個 腳本 文件, 后面 跟著 的 是 腳本 解釋器 的 路徑, 內核 會 調用 這個 解釋器 去 執行 腳本。


練習 : 寫 第一個 腳本 并 運行, 輸出 一句 Hello word!

這里 習慣 使用 vim 編輯器, 所以 就 用 vim 的 了, 不會的 也 可以 用 nano, 腳本文件 應該 以 ‘ .sh ’ 作為 結尾, 這個 說明 他 是一個 腳本。。, ?其實 以 普通 文件 寫 腳本 一樣 也是 可以 運行 的, 不過 可以運行 的 普通文件 一般會是 編譯好了的二進制程序,所以 還是 以 ‘ .sh ’ 結尾 把, 這個 是 大家 默認 的。

大概 就這樣 了, 簡單 把, 這里 的 ‘#’號 是 代表 注釋 的 意思, ‘#’ 號 后面 的 一句話 是 不會被 執行 的, 只有 ‘#!’ 和在一起 才表示 這是一個 腳本, 會被 內核 調用 bash解釋器 執行 的。


這個就是我編寫的腳本 a.sh ,首先檢查一下腳本有沒有語法錯誤


ok, 沒有 顯示 任何 信息, 說明 腳本 沒有 錯誤, 執行 腳本, 這里 有 兩種 方法可以 執行


方法1:????直接調用 bash解釋器 去 解釋 腳本


方法2:????給腳本添加一個可執行權限, 就可以直接執行腳本了, 不過 這里 需要 給出 腳本 的 準確 路徑, 不過 可以 通過修改 PATH 文件, 這樣 腳本 就可以 像 命令 一樣 執行 了。

這里 我 自己 添加 了 一個 './' 目錄, 這樣 就 可以 直接 執行 這個 腳本 了。。


bash 變量: ? ? ?有幾種: 本地變量,局部變量,環境變量,特殊變量,位置變量

1、本地變量:只對當前 shell 進程 有效,對其 子 shell 以及 其他 shell 都 無效

????????定義變量: [set]Var_Name="Value" ,set 是 定義 本地變量 的 關鍵字, 可省略 的默認定義 的 變兩個 就是 本地變量

????????引用變量: ${Var_Name}, 這里的 大括號 大多數情況 可以 省略

????????撤銷變量: unset Var_Name

????????顯示變量: 直接執行 set 可以 顯示 所有 本地變量

2、局部變量: ? 這個 應該 和 函數 有關 把, 這里 先不管 他。

????????定義變量: ? local Var_Name="Value"

3、環境變量:

????????定義變量: ? export Var_Name="Value"

????????顯示環境變量:?????export, env, printenv 這三個 命令 都 可以 顯示 環境變量,

4、位置變量

????????$1, ... , $n

????????這個 是 腳本 輸入 的 參數, 各個 參數 之間 是 以 空格 分隔 的, $1 就 表示 腳本 的 第一個 參數

5、特殊變量

????????$0????腳本名稱, 這個和變量位置差不多吧。

????????$?????上一條命令的執行狀態,?

????????????????????0表示 成功

????????????????????1-255 失敗。。

????? ? $#????查看命令之后有幾個參數

?后面 三個 不知道。。, 老師 沒講, 用到的 時候 再說 把。

??????? $$ ? ? ?

????????$!

????????$*???

ok, 寫了個 腳本 測試 一下 特殊變量 和 位置 變量, 大概 就 這樣 了。。


bash配置文件

????bash 啟動 是 會 自動 執行 配置 文件 里面 的 一些 腳本, 用于 設置 一些 永久 的 屬性信息

? ? ? ? 1 profile類: 為交互式登錄的用戶提供配置,登錄系統時只執行一次,一會再運行bash會執行 了

????????????????/etc/profile ?: ?對所有用戶有效,一般用于管理員修改一些最基本的信息

????????????????/etc/profile.d/*.sh ? : 對所有用戶有效, 這個 文件夾 下 的 .sh 文件 都會 ????????????????????????????????????被 執行,用于 設置一些軟件的配置 之類 的

????????????????~/.bash_profile? ?:個人家目錄下也有 一個 這樣 的 配置文件, 不過 是隱藏的

????????bashrc類: 非交互式登錄用戶提供配置

?????? /etc/bashrc: 全局

~/.bashrc: 個人配置

通知shell重新讀取配置文件: source FILE, 如 source .bashrc 之類 的。

--------------------------------------------------------------

系統啟動時 配置文件讀取順序:

交互式登錄用戶:

/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc


非交互式登錄用戶:

~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh


變量的命名要求:

只能使用數字、字母和下劃線組成;

不能以數字開頭;

不能使用程序中的關鍵字;

見名知義;totalWeight?


for循環:

這個是shell腳本中最常用的循環結構, 其他 還有 兩個循環結構, 分別是 while 和 until, 不過 這里 直說 for 循環。


語法:

for循環:

for var_Name in 列表; do

語句1

語句2

...

done


大概 語句結構 就是 這個 樣子 了, 其中 var_Name 表示 變量, in 后面 跟著 的 是一個 列表, for循環 就是 遍歷 這個 列表 的, 列表 后面 有 一個 ';', 這個 是 shell 中 的 語句分隔符, 后面 的 do 就是 另外 一個 語句 了, 也可 以 把 do 另起一行, 這樣 就 可以 省略 ';' 了, 如:

例1:

????????for I in 1 2 3 4 5 6 7 8 9

????????do

????????????????echo $I

????????done

說下 這個 例子 把。?

第一行, for 關鍵字 代表 這 是一個 循環 語句, 之后 的 I 是 一個 變量, 然后 in 表示 這個 變量 的 范圍, 后面 是 一個 列表, 意思 就是 I 變量 要 在 這個 列表 的 范圍 內,?

第二行, ?do 開始 執行 循環體 的 意思,

第三行, done 表示 循環 結束



ok, 下面 說 一下 怎樣 生成 列表 把, 這樣 手動 寫 列表 也是 很不爽 的 哈。


----------------------------------------------------

生成列表:

1 、 {1..9} ?花括號 生成, 這個 表示 生成 列表 1 到 9,繼續改一下上個腳本把。

這樣 看 上去 是不是 簡單 多 了 啊。


2、 使用 關鍵字 seq 生成 列表, ?語法 格式 為 ? seq 1 [步長] 9, 這里 也是 生成 1 到 9 , 中間 那個 步長 是 可以 省略 的, 步長 的 意思 是 每一步 的 長度, ?

如 seq 1 2 9 表示 1 3 5 7 9, 每次 都是 上一次 生成 的 數字 加上 步長


seq 還有 幾個 選項, 不過 不太常用。。

????????-s '字符', 這個 是 設定 分隔符, 默認 為 '\n' 的, 大概 能 用得著 的 就是 這個 了

????????????????這里 注意, 要 用 單個 字符 哦, 用 字符串 會 出現 另外 一種 情況 的,?

????????-f 這個 才是 可以 匹配 字符串 的 選項, 如圖:

這個 第三個 語句 也 可以 執行, 但 他 是 以 字符串 來 分隔 數字 的, 可能 不是 我們 要 表達 的 意思 把。 seq 用法 還有 一些, 這里 就 不多說 了, 。。


3、 說一下 列表 除了 手寫 之外, ls 之類 的 命令 也是 可以 生成 列表 的,不用 要用 `` 把 命令 引起來, 這個 都懂 把, 前面 有 說過 的。?

-----------------------------------------------

寫 一個 小 腳本 把, 都 說 這么 多 了, ..

添加100個用戶, user1 到 user 100, 將 用戶 的 密碼 設置 為 111111

就 是 這個 了, passwd 命令 這個 都 沒忘記 把, 反正 我 是 沒有, 其實 馬哥 領著 我們 練習 了好多 習題 的, 不過 這里 我 就 說了 幾個, 練習 還是 少 啊, 多練 多敲 才是 王道, 沒有 任何 捷徑 的。。。。


轉載于:https://blog.51cto.com/vrgfff/1572455

總結

以上是生活随笔為你收集整理的6,bash入门,for 循环, 编写最简单的脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。