4、在Shell程序中的使用變量

學習目標
變量的賦值
變量的訪問
變量的輸入

12-4-1 變量的賦值
在Shell編程中,所有的變量名都由字符串組成,并且不需要對變量進行聲明。要賦值給一個變量,其格式如下:變量名=值。
注意:
等號(=)前后沒有空格
例如:
?? x=6
?? a=”How are you ”
表示把6賦值給變量x,字符串“How are you ”賦值給變量a。

12-4-2 訪問變量值
如果要訪問變量值,可以在變量前面加一個美元符號“$”,例如:
ubuntu@ubuntu:~$?a="How are you? "
ubuntu@ubuntu:~$?echo "He just said:$a"
He just said:How are you?
ubuntu@ubuntu:~$

一個變量給另一個變量賦值可以寫成:變量2=$變量1
例如:x=$i,i++可以寫成:i=$i+1

12-4-3 鍵盤讀入變量值
在Shell程序設計中,變量的值可以作為字符串從鍵盤讀入,其格式為: read 變量
例如:
ubuntu@ubuntu:~$?read str
read為讀入命令,它表示從鍵盤讀入字符串到str。

實例:編寫一個Shell程序test3,程序執行時從鍵盤讀入一個目錄名,然后顯示這個目錄下所有文件的信息。
分析:存放目錄的變量為DIRECTORY,其讀入語句為:read DIRECTORY,顯示文件的信息命令為:ls –a 。

ubuntu@ubuntu:/home/study$ vi test3
#! /bin/sh
echo "please input name of directory"
read DIRECTORY
cd $DIRECTORY
ls -lubuntu@ubuntu:/home/study$ chmod +x test3
ubuntu@ubuntu:/home/study$ ./test3
please input name of directory
/home #輸入路徑時需“/”

實例:運行程序test4,從鍵盤讀入x、y的值,然后做加法運算,最后輸出結果。

#! /bin/shecho "please input x y"
read x y
echo $x $y
z=`expr $x + $y`
echo "The sum is $z"

注意:
read x y –>多個變量之間用空格隔開,切忌用逗號(,)
z=`expr $x + $y`
1)、expr ‘+’ 兩邊有空格
2)、倒引號,表示在被引用的內容要做運算

轉載于:https://www.cnblogs.com/linjiqin/p/3148664.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376597.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376597.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376597.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言技巧:把單一元素的數組放在末尾,struct可以擁有可變大小的數組

《C 對象模型》第19頁有這樣一句話 C程序員的巧計有時候卻成為c程序員的陷阱。例如把單一元素的數組放在一個struct的末尾,于是每個struct objects可以擁有可變數組的數組: struct mumble {/* stuff */char pc[1]; };//從文件或標準輸入裝置中取得一個…

探討C++ 變量生命周期、棧分配方式、類內存布局、Debug和Release程序的區別(二)...

看此文,務必需要先了解本文討論的背景,不多說,給出鏈接: 探討C 變量生命周期、棧分配方式、類內存布局、Debug和Release程序的區別(一) 本文會以此問題作為討論的實例,來具體討論以下四個問題&a…

后臺系統可擴展性學習筆記(一)概要

文章目錄系統大致架構可擴展性負載均衡器與會話保持引入冗余增強系統可用性緩存減輕數據庫壓力異步處理參考系統大致架構 當一個用戶請求從客戶端出發,經過網絡傳輸,達到 Web 服務層,接著進入應用層,最后抵達數據層,它…

poj 3728(LCA + dp)

題目鏈接:http://poj.org/problem?id3728 思路:題目的意思是求樹上a -> b的路徑上的最大收益(在最小值買入,在最大值賣出)。 我們假設路徑a - > b 之間的LCA(a, b) f, 并且另up[a]表示a - > f之間的最大收益…

成功之路

1、每天都要有進步,都要有新知識的收獲。 2、工作認真負責,高效的完成,多總結。 3、自己多練習一些感興趣的東西,實踐!!! 4、寫博客。 5、百度、騰訊、阿里是目標,差距還很大&#x…

后臺系統可擴展性學習筆記(二)權衡取舍

文章目錄性能與可擴展性延遲與吞吐量可用性與一致性一致性模式可用性模式可用性衡量參考系統設計中也面臨許多權衡取舍:性能與可擴展性延遲與吞吐量可用性與一致性 性能與可擴展性 可擴展,意味著服務能以加資源的方式成比例地提升性能,性能…

iOS中使用子線程的完整方法

第一步:開啟子線程 //開啟子線程到網絡上獲取數據myFirstThread [[NSThread alloc]initWithTarget:self selector:selector(thread1GetData) object:nil];[myFirstThread setName:"第一個子線程,用于獲取網絡數據"];[myFirstThread start]; 第二步&…

DIV的表單布局

表單布局其實用表格最好了&#xff0c;可是表格的話&#xff0c;無法定位&#xff0c;這個是一個硬傷。 <!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <title>表單布局</title> <link rel"stylesheet" …

后臺系統可擴展性學習筆記(三)DNS機制原理

文章目錄DNS概念梳理域名基本概念資源記錄基本概念路由策略DNS 域空間結構實現原理復制機制查詢機制緩存機制參考DNS概念梳理 DNS&#xff08;Domain Name System&#xff09;相當于互聯網的通訊錄&#xff0c;能夠把域名翻譯成 IP 地址。 從技術角度來講&#xff0c;DNS 是個…

后臺系統可擴展性學習筆記(四)CDN機制原理

文章目錄概念梳理CDN拓撲結構CDN內容分發方式架構原理工作原理實現原理概念梳理 CDN&#xff08;Content Delivery Network&#xff0c;內容分發網絡&#xff09;是由分布在不同地理位置的代理服務器及其數據中心組成的網絡&#xff0c;希望在空間距離上為用戶就近提供服務&am…

Javascript 基礎—變量 運算符

經過找工作筆試的洗禮&#xff0c;感覺自己js語法方面掌握的不是很系統&#xff0c;今天來梳理下——變量以及運算符。 基礎篇 和C語言的不同點&#xff1a;是一種弱類型語言&#xff0c;申明變量時不需要指定類型&#xff1b;變量名的命名方法也有不同&#xff1b;簡單類型種類…

后臺系統可擴展性學習筆記(五)負載均衡

文章目錄Load balancer(負載均衡器)請求傳輸拆解DNS 負載均衡客戶端負載均衡OSI 七層模型回顧2 層、3 層負載均衡3/4 層負載均衡7 層負載均衡在 第一節談到了系統的橫向擴展在于從單機擴展到多機&#xff0c;那么面臨的第一個問題就是這些機器如何協同工作&#xff0c;即如何調…

Struts2第一個工程helloStruts極其基本配置

前面已經準備好了Struts-2.3.15&#xff0c;現在就可以直接搭建Struts2的工程了。前面http://blog.csdn.net/huangchnegdada/article/details/9179041有對Struts-2.3.15的準備工作的詳述。 首先打開MyEclispe新建一個Web Project&#xff0c;名字就叫Struts2_0100_Introduction…

[LeetCode]Find Minimum in Rotated Sorted Array

題目描述&#xff1a; Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). Find the minimum element. You may assume no duplicate exists in the array. 解題方案&#xff1a; 直接貼代碼&…

后臺系統可擴展性學習筆記(六)反向代理

文章目錄Web代理服務反向代理反向代理作用Web代理服務 Web 代理服務指的是在客戶端資源請求和提供這些資源的 Web 服務之間充當中介的角色&#xff0c;代理服務可以實現在客戶端&#xff0c;或者從客戶端到目標服務器中間的任意環節。 例如&#xff0c;客戶端不直接向提供目標…

(C)單鏈表

老師版 1 #include <stdio.h>2 #include <stdlib.h>3 4 // 定于Node數據類型5 struct Node6 {7 int data; // 數據域8 struct Node *next; // 指針域9 };10 11 // 創建一個單鏈表&#xff0c;并把head節點返回&#xff1b;…

實驗:sigsuspend(),sigprocmask()

實驗&#xff1a;sigsuspend(),sigprocmask()源代碼&#xff1a;/* * Program: pause_suspend.c * To test the difference between sigsuspend() and paus(). * Author: zsl * Date: 2014-10-17 * First release. * 參見網頁&#xff1a;http://blog.csdn.net/liwentao1091/ar…

后臺系統可擴展性學習筆記(七)Service Discovery與微服務

文章目錄應用層微服務架構服務注冊查詢 Service Discovery客戶端 Service DiscoveryDNS-SD DNS-based Service Discovery服務端 Service Discovery服務注冊與注銷自注冊模式第三方注冊模式總結參考應用層 在簡單的 3 層結構中&#xff0c;Web 服務層既要處理請求&#xff0c;又…

很久沒寫代碼了,這(那)幾天真是累死了。。。先寫一個幻方的程序吧

1 #include <stdio.h>2 #include <stdlib.h>3 #include <windows.h>4 5 #define EVEN_DOUBLE_4 4 //雙偶的最基本類型&#xff0c;4階雙偶6 #define SCREEN_SIZE 19 //屏幕顯示不變形的最大尺寸&#xff08;主要是因為窗口大小限制&#xff09;7 #defi…