1. 程式人生 > >shell 指令碼程式設計學習(二) 變數,使用者輸入,引數

shell 指令碼程式設計學習(二) 變數,使用者輸入,引數

前面已經說過,shell 指令碼幾乎就是一組儲存下來的 shell 命令。掌握了格式和執行方法之後我們已經可以使用指令碼來幫助完成工作了。但相較於平時一行行地敲命令,指令碼還是有一些特別之處讓我們可以實現更強大的功能。

變數

在單行敲 shell 命令時我們可能不會經常使用變數,但在多行指令碼中 shell 變數可以發揮很大作用。下面有一些變數使用的方法需要注意:

str='test' # 定義一個變數 str 儲存字串 test
echo $str # $變數名,得到變數的值。
echo "str is $str" # 在雙引號中 $變數名 會被解析為變數的值。
echo "${str}
123"
# 為避免和其他字元混淆可以 ${變數名} 來解析變數值。 echo ${#str} # 獲得變數的長度。這裡是字串 test 的長度,即 4 echo "pwd is $(pwd)" # $(shell 命令) 解析為 shell 命令的輸出 echo "pwd is `pwd`" # 反引號的內容也解析為 shell 命令的輸出

引數

像命令列程式一樣,指令碼也可以獲得使用者執行時傳遞的引數。獲得方法為:

$# # 呼叫指令碼所傳遞的引數數量
$0 # 當前指令碼的檔名
$1-9 # 呼叫指令碼時給出的第1個到第9個命令列引數

使用者輸入

除了獲取引數外,指令碼也可以請求使用者輸入以達到互動操作的效果。方法是 read 變數名 請求使用者輸入,輸入結束後系統將把使用者輸入的值儲存到指定的變數中。例如下面的指令碼請求使用者輸入名字然後將它顯示出來:

#!/bin/bash
echo 'What is your name?'
read name # 請求使用者輸入並將輸入值儲存到變數 name 中
echo "Hello $name"

相關推薦

shell 指令碼程式設計學習 變數使用者輸入引數

前面已經說過,shell 指令碼幾乎就是一組儲存下來的 shell 命令。掌握了格式和執行方法之後我們已經可以使用指令碼來幫助完成工作了。但相較於平時一行行地敲命令,指令碼還是有一些特別之處讓我們可以實現更強大的功能。 變數 在單行敲 shell 命令時我們

Linux命令列與shell指令碼程式設計大全

十一、處理使用者輸入 命令列引數 讀取引數: $0是程式名,$1是第一個引數,$2是第二個引數,以此類推,直到第9個引數$9。當引數個數超過10以後,需要在變數數字周圍加上花括號,如${10},如果輸入到命令列的引數是字串且含有空格,需要使用引號。 #! /bin/bash echo

Shell指令碼程式設計簡單的Shell指令碼練習

練習題1:互動式指令碼(使用者決定變數內容) 程式碼 [[email protected] bin]$ vim showname.sh #!/bin/bash # Program: # User inputs his first name and last

Linux-Shell指令碼程式設計基礎1

1. 我們一般在使用Linux系統的時候,都活接觸到shell指令碼的使用,例如我們經常在linux系統中使用的ls命令、cd命令等,都是衣蛾簡單而又基本的shell命令,在 linux系統中我們一般的使用如下的格式來進行shell指令碼的編寫: (1)格式 #!bin/bash e

Linux命令列與shell指令碼程式設計大全

一、基本 bash shell命令 建立檔案 : touch 連結檔案:符號連結:是一個實實在在的檔案,兩個通過符號連結在一起的檔案,彼此的內容並不相同。使用ln -s命令。 硬連結:會建立獨立的虛擬檔案,其中包含了原始檔案的資訊及位置。但他們從根本上而言是同一個檔案。原始檔案必須事

Linux命令列與shell指令碼程式設計大全

十二、呈現資料 輸入和輸出     標準檔案描述符                  0 STDIN 標準輸入   &n

ES6學習---變數的解構賦值

1.陣列的解構賦值 (1)等式左右兩邊結構相同,等式右邊的值就會被賦值給等式左邊的 let [a,b,c] = [1,2,3]; //相當於a =1 ,b =2, c =3 let [head,...tail] = [1,2,3,4]; //tail 4 //head 1 le

Linux命令列與Shell指令碼程式設計大全

一、建立函式 1.基本的指令碼函式 1.1 建立函式 function name { commands} 1.2 使用函式 在行中指定函式名就行了 ## 建立函式,注意函式名和大括號中間有空格,不然會報錯 function func1 { echo "

Write a Shell in C 學習

上一次簡單的談了怎樣從命令列讀取輸入並對輸入進行初步的處理。下一步就是所謂執行命令了。而命令大概又分成兩個部分,一是內建命令,二是執行外部程式。這篇主要講如喝執行內建命令。 我實現的內建命令有,cd,info,pwd,exit,search。值得一提的是,我把執行外部程式的

Shell指令碼程式設計Shell指令碼簡介

什麼是Shell指令碼 shell script 是利用 shell 的功能所寫的一個『程式 (program)』,這個程式是使用純文字檔案,將一些 shell 的語法與指令(含外部指令)寫在裡面, 搭配正則表示式、管線命令與資料流重導向等功能,以達到我們所想要的處理目的 s

Shell指令碼程式設計執行方式差異(source, sh script, ./script)

利用直接方式或bash執行 該 指令碼 都會使用一個新的 bash 環境來執行指令碼內的指令!也就是說,使用這種執行方式時, 其實 script 是在子程式的 bash 內執行的 知識點 當子程式完成後,在子程式內的各項變數或動作將會結束而不會傳回到父程式中

Linux 平臺下 Python 指令碼程式設計入門

在“Linux 平臺下 Python 指令碼程式設計入門”系列之前的文章裡,我們向你介紹了 Python 的簡介,它的命令列 shell 和 IDLE(LCTT 譯註:python 自帶的一個 IDE)。我們也演示瞭如何進行算術運算、如何在變數中儲存值、還有如何列印那些值到螢幕上。最後,我們通過一

visual studio C/C++ 程式設計學習 同時生成dll和lib檔案

    之前手裡有幾個VS2008 C++的工程,因為懶,所以每次都是把前面一個複製到後面一個,再重寫程式碼,這樣的好處就是不用再設定一些庫和依賴項(尤其是OpenCV的dll和lib要填寫一大堆,很是麻煩)。今天又故技重施,拷貝了一個工程,但是小手一抖,不知道修改了哪兒的

我的opengl程式設計學習混合、深度測試、霧化、多邊形平移、顯示列表

12 混合 混合的底層原理是:如果不開啟混合,那麼對於幀快取中的同樣一個片斷,後來的顏色將會覆寫原有的顏色,而開啟混合,則會在後來的顏色到來時利用混合因子重新計算該顏色而不是簡單的覆寫。其中後來的顏色叫

nodejs學習--express熱更新nodemon自啟動項目

nbsp res 自啟 -- dev code nod 沒有效果 情況 一、說一下   每次修改文件,我們都需要重啟服務器npm start,很麻煩,所以使用引入nodemon插件,解決這個問題,實現保存文件,即自啟動刷新項目 二、直接開碼    npm install

學習Shell變數

如何給shell指令碼傳入引數 1.執行“vi test.sh”建立一個新的shell指令碼。 vi test.sh 2.指令碼test.sh的內容如下: #!/bin/sh name=$1 echo "the ${name} are great man!" 3.給新建立的tes

Linux學習shell 程式設計基礎

一、bash環境變數 HOME、MAIL、SHELL、PATH 等,環境變數大都用大寫字母組成 [[email protected] dalianmao]# echo $SHELL /bin/bash [[email protected] dalianmao]# echo

shell指令碼程式設計學習筆記2正則表示式

編寫shell指令碼時經常用到的基本操作就是尋找包含特定文字的行,雖然用簡單的grep命令可以完成一些簡單的工作,但是正則表示式無疑是繞不開的。本文主要介紹基本正則表示式。 總的來說,正則表示式由兩部分組成:一般字元和特殊字元。特殊字元(meta)在正則表示式中往往具有特

UNIX環境高階程式設計學習

UNIX系統程序控制程式說明 該程式從標準輸入讀取命令,然後執行這些命令,程式涉及到的函式主要用法包括: fgets的用法 execlp的用法 waitpid的用法 程式如下: #include "apue.h" #include <sys/wai

機器學習--------單變數線性迴歸(Linear Regression with One Variable)

   面積與房價 訓練集 (Training Set)  Size       Price 2104       460 852