Linux編程 20 shell編程(shell腳本創建,echo顯示信息)

来源:https://www.cnblogs.com/MrHSR/archive/2018/09/27/9711875.html
-Advertisement-
Play Games

一概述 前面19章里已經掌握了linux系統和命令行的基礎知識,從本章開始繼續學習shell腳本的基礎知識。在大量編輯shell腳本前,先來學習下一些基本概念。 1.1 使用多個命令 Shell可以讓多個命令串起來,一次執行完成,可以把它們放在同一行中,用分號隔開,如下所示: 上面就是一個簡單的腳本 ...


一概述

  前面19章里已經掌握了linux系統和命令行的基礎知識,從本章開始繼續學習shell腳本的基礎知識。在大量編輯shell腳本前,先來學習下一些基本概念。

  1.1    使用多個命令
    Shell可以讓多個命令串起來,一次執行完成,可以把它們放在同一行中,用分號隔開,如下所示:
      
    上面就是一個簡單的腳本了,用到了兩個bash shell命令,但每次運行之前,都必須在命令提示符下輸入整個命令。如果將命令組合成一個簡單的文本文件,需要時運行這個文本文件就行了。

  1.2    創建shell 腳本文件
    將shell 命令放到文本文件中,首先使用vim編輯器創建一個文件,然後在文件中寫入命令。下麵使用vim test1新建一個文件,按(i)鍵編輯腳本,保存文件(:wq)退出。解說下這幾行:第一行 #! 會告訴shell,是使用的/bin/bash 路徑下的bash  shell來運行腳本。第二行 #是用作註釋行,shell不會處理。第三四行是命令。
      
    test1腳本文件創建好了,通過ls -l 命令會發現hsr用戶沒有執行許可權,如下圖所示:
      
    試試下麵運行test1新腳本,如下圖提示:未找到命令....。這是因為bash shell 找不到你的腳本文件,有二個方法:一是前面講到過環境變數PATH,將腳本複製到PATH目錄下,二是使用絕對路徑來執行腳本。
      
    查看PATH的多個shell執行路徑。把test1 移到/usr/local/bin/test1下,如下圖提示:提示許可權不夠。關於分配許可權可以查看17篇。
      
    切換到root下,文件移動成功,但執行還是許可權不夠。
      
    再查看到root用戶對/usr/local/bin/test1文件的許可權,發現也沒有執行許可權。
      
    給這個test1文件賦三組用戶最大許可權 777,再執行test1腳本成功了,最後再查看下許可權,執行許可權也有了。
      
    下麵再使用絕對路徑來執行test1文件腳本,也成功了,如下圖所示:
      

   1.3 腳本中顯示信息

     與很多控制台一樣,需要輸出信息提示用戶在做什麼,或怎麼做。在shell中使用echo命令,與c語言的print,c#的console等一樣的命令。下圖是新建的一個test2腳本文件內容。
      
    下圖編輯保存test2腳本文件後,可文件許可權,使用絕對路徑輸出,顯示了echo列印的信息。
      
    如果想把文件字元串和命令輸出顯示在同一行中,可以使用echo -n參數,如下所示:
      
      

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 由於項目需要,所以寫了下麵一段添加水印的代碼,如下: 後臺代碼: /// /// 上傳圖片 /// ///文件 ///保存的文件夾名稱 [HttpPost] public ActionResult UpLoadingImg(HttpPostedFileBase upfile, string file ...
  • 一、前言 1、本文主要內容 ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC帶路徑參數的路由示例 ASP.NET Core MVC固定前/尾碼的路由示例 ASP.NET Core MVC正則表達式匹配路由示例 ASP.NET Core MVC路由約束與自定義路由約束 ...
  • 1.添加初始化數據(Seed) 我們可以在初始化資料庫的過程中給資料庫添加一些數據。為了實現初始化數據(seed data)我們必須創建一個自定義的資料庫初始化器(DB initializer),並重寫其中的Seed方法。 下邊的慄子展示在School資料庫中給Standard表添加預設的數據: 第 ...
  • 飛思卡爾半導體(現恩智浦半導體)2017年推出的i.MX RT系列第一款晶元i.MXRT1052,搭載Cortex-M7內核,主頻高達600MHz,CoreMark跑分高達3020,這種高性能MCU給嵌入式端Audio處理帶來了可能,因此我們可以藉助這類高性能MCU實現實時板級Audio處理(降噪、... ...
  • 最近學習Linux,最大的體驗就是它的很多東西都需要由命令來進行控制,下麵是我總結的一些命令,供大家參考: 系統信息 arch 顯示機器的處理器架構 uname -m 顯示機器的處理器架構 uname -r 顯示正在使用的內核版本 dmidecode -q 顯示硬體系統部件 - (SMBIOS / ...
  • CPU發佈控制命令控制數據是流入記憶體還是流出記憶體,CPU處理的數據全部是來自記憶體的。 CPU的種類: 根據內部的微指令集來區分(CPU依靠(運行)指令碼) 精簡指令集(RISC):例如升陽(sun)的SPARC系列、IBM的PowerPC系列、ARM系列。 複雜指令集(CISC):x86架構的cpu ...
  • 導語: 早前為了方便日常開發,建立跟生產環境類型的環境的時候考慮使用docker作為模擬生產環境,結果沒想到給自己的學習挖了一個大坑。其他關於docker容器技術的坑先不在這裡贅述,有時間的話在其他文章記錄下來,這裡先從最基本的工作環境開始拉開這條漫長的學習之路。 docker雖然提供了很多好用並且 ...
  • 所以說,英文真是個好東西,很多資料都只有英文版本,要是不懂英文,甚至你不知道這個資料的存在,更別提用蹩腳的翻譯軟體去翻譯了。wsl 的資料:https://docs.microsoft.com/zh-cn/windows/wsl/interop這裡面提到可以用wsl 命令,在windows中使用li... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...