shell腳本作業

来源:https://www.cnblogs.com/shy13138/archive/2019/08/12/11337963.html
-Advertisement-
Play Games

1、判斷/etc/inittab文件是否大於100行,如果大於,則顯示”/etc/inittab is a big file.”否者顯示”/etc/inittab is a small file.” #!/bin/bash a=`awk '{print NR}' /etc/inittab|tail ... ...


1、判斷/etc/inittab文件是否大於100行,如果大於,則顯示”/etc/inittab is a big file.”否者顯示”/etc/inittab is a small file.”
#!/bin/bash
a=`awk '{print NR}' /etc/inittab|tail -n1`
if [$a>100];then
    echo "文件為大文件"
else
    echo "文件不足100行" 
fi
 
2、給定一個用戶,來判斷這個用戶是什麼用戶,如果是管理員用戶,則顯示“該用戶為管理員”,否則顯示“該用戶為普通用戶”
#!/bin/bash
read -p "輸入用戶:" username
echo $username
a=`id -u $username`
echo "$a"
if [ $a -lt 500 ];
then
        echo "該用戶是管理員用戶"
else
        echo "該用戶為普通用戶"
fi
 
3、判斷某個文件是否存在
#/bin/bash
read -p "輸入一個文件:" file
ex=`ls $file`
if [ $ex == "ls: cannot access e: No such file or directory" ]
then
        echo "無此文件"
else
        echo "有此文件"
fi
4、判斷當前系統上是否有用戶的預設shell程式是否為bash程式,如果有,就顯示有多個這類用戶,否則就顯示沒有這類用戶;【並且顯示出那些用戶是bash】
#!/bin/bash
grep "\<bash$" /etc/passwd &> /dev/null
retal= $?
if [ $retal==0 ];
then
        Users=`grep "\<bash$" /etc/passwd`
        echo $Users
else
        echo "沒有用戶"
fi
 
5、寫出一個腳本程式,給定一個文件,比如:/etc/inittab a、判斷這個文件中是否有空白行? b、如果有,則顯示其空白行的行號,否則顯示沒有空白行
#!/bin/bash
read -p "請輸入文件名稱:" file
c=`grep ^$ $file|wc -l`
if [ $c -gt 0 ];then
        echo $c
else
        echo "沒有空白行"
fi
 
6、寫一個腳本程式,給定一個用戶,判斷其UID與GID是否一樣,如果一樣,就顯示該用戶為“good guy”,否則顯示為“bad guy”
#!/bin/bash
read -p "輸入一個用戶名:" user
UID1=`cat /etc/passwd |grep $user| cut -d: -f3`
GID1=`cat /etc/passwd |grep $user| cut -d: -f4`
echo $UID1
echo $GID1
if [ $UID1-eq$GID1 ];
then
        echo "good guy"
else
        echo "bad guy"
fi
 
7、寫一個腳本程式,給定一個用戶,獲取其密碼警告期限;然後判斷用戶最近一次修改密碼的時間距離今天是否已經小於警告期限;
 
8、判斷命令歷史中歷史命令的總條目是否大於1000,如果大於,則顯示“some command will gone”,否則顯示OK
#!/bin/bash
num=`wc -l /root/.bash_history`
echo $num
if [ $num -gt 1000 ];
then
        echo "some commed will gone"
else
        echo "OK"
fi
9、給定一個文件,如果是普通文件,就顯示出來,如果是目錄文件,也顯示出來,否則就顯示“無法識別”
#!/bin/bash
read -p "輸入一個文件>>" file1
if [ -f `ls $file1` ];then
        echo “普通文件”
elif [ -d `ls $file1` ];then
        echo ”目錄文件“
else
        echo "無法識別"
fi
10、寫一個腳本,能接受一個參數(文件路徑),判斷這個參數如果是一個存在的文件就顯示“ok”,否則顯示“No such file”
#!/bin/bash
read -p "給定一個文件路徑>>" file1
if [ -n `ls $file1` ];then
        echo "此文件存在在"
else
        echo "文件不存在"
fi
11、寫一個腳本,給腳本傳遞兩個參數,顯示兩則之和和兩者之積
#!/bin/bash
read -p "輸入參數A>>" A
read -p "輸入參數B>>" B
let C=$A+$B
let D=$A*$B
echo "A+B=$C"
echo "A*B=$D"

 


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

-Advertisement-
Play Games
更多相關文章
  • Windows RDP 訪問 Fedor 遠程桌面需要使用 Xrdp 開源工具。 安裝完成後需要註銷掉當前用戶,否則登錄失敗。 ...
  • 環境 CentOS: 7.x 下載 下載地址 :http://www.clamav.net/downloads,使用目前最新版本為:clamav 0.101.3 使用 wget 下載 安裝 1. 解壓 2. 安裝依賴 3. 編譯安裝 4. 添加用戶 配置 1. 創建日誌目錄和病毒庫目錄 2. 創建日 ...
  • Ubuntu系統中會存在多個 Python 的可執行二進位文件。一般Ubuntu預設的Python版本都為2.x, 如何改變Python的預設版本呢?下麵來一起看看吧。 你可以按照以下方法使用 ls 命令來查看你的系統中都有那些 Python 的二進位文件可供使用。 像我的有2.7、3、3.5版本 ...
  • 在linux的命令模式下使用ctrl組合鍵能讓操作更便捷。 ctrl + k : 剪切游標及其後邊的內容; ctrl + u : 剪切游標之前的內容; ctrl + y : 在游標處粘貼上兩個命令,粘貼方式和被剪切方式相同; ctrl + c : 結束正在運行的程式或命令; ctrl + d : 結... ...
  • 提到 Linux,作為程式員來說一定都不陌生。但如果說到「懂」Linux,可能就沒有那麼多人有把握了。到底用 Linux 離懂 Linux 有多遠?如果決定學習 Linux,應該怎麼開始?要學到什麼程度?懂一點 Linux,對於程式員有什麼價值?通過馬蜂窩內容中心高級研發總監李鴻的這次內部分享,你會 ...
  • 轉自:linux sed命令詳解 簡介 sed 是一種線上編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱為“模式空間”(pattern space),接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接著處理下一行,這樣不斷重覆,直到文件末尾。文件內容 ...
  • 日常開發中,我們經常需要在伺服器上進行各種文本,日誌的查看操作,本文主要對常用的文本,日誌查看技巧進行了一番總結和歸納,方便大家收藏起來後續查看使用: tail命令查看日誌信息 實時監控日誌: 實時監控10行日誌信息: 查看日誌尾部的最後100行日誌信息: 查看日誌100行之後的日誌信息: head ...
  • 又要寫周報???? 寫周報就算了每次都要改這一大堆的日期,什麼鬼嘛,最騷的我還總是有的忘記改。。。。 作為一個正兒八經的程式員,固定每周某天干重覆的一件事,哦~~ 這是機器人 程式應該做的事。 那得咋辦呢,excel 這麼強大的工具日期不在話下搞起來, 每周一都要寫周報,周報格式就是上面那鳥樣,每次 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...