From e50a0691a29c95809901a143ffa39d5e569a93ff Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 12 Jul 2023 11:19:04 +0800 Subject: [PATCH] RP @geekpi https://linux.cn/article-15991-1.html --- ...¸ Bash Basics Series 2 Using Variables in Bash.md | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) rename {translated/tech => published}/20230619.1 â­ï¸â­ï¸ Bash Basics Series 2 Using Variables in Bash.md (72%) diff --git a/translated/tech/20230619.1 â­ï¸â­ï¸ Bash Basics Series 2 Using Variables in Bash.md b/published/20230619.1 â­ï¸â­ï¸ Bash Basics Series 2 Using Variables in Bash.md similarity index 72% rename from translated/tech/20230619.1 â­ï¸â­ï¸ Bash Basics Series 2 Using Variables in Bash.md rename to published/20230619.1 â­ï¸â­ï¸ Bash Basics Series 2 Using Variables in Bash.md index 8d4962d9c6..84dc3e8fe7 100644 --- a/translated/tech/20230619.1 â­ï¸â­ï¸ Bash Basics Series 2 Using Variables in Bash.md +++ b/published/20230619.1 â­ï¸â­ï¸ Bash Basics Series 2 Using Variables in Bash.md @@ -3,14 +3,18 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15991-1.html" Bash 基础知识系列 #2:在 Bash 中使用å˜é‡ ====== -在 Bash åŸºç¡€çŸ¥è¯†ç³»åˆ—çš„ç¬¬ä¸€éƒ¨åˆ†ä¸­ï¼Œæˆ‘ç®€è¦æåˆ°äº†å˜é‡.现在是时候在本章中详细了解它们了。 +![][0] + +> 在本章的 Bash 基础知识系列中,学习在 Bash 脚本中使用å˜é‡ã€‚ + +在 Bash åŸºç¡€çŸ¥è¯†ç³»åˆ—çš„ç¬¬ä¸€éƒ¨åˆ†ä¸­ï¼Œæˆ‘ç®€è¦æåˆ°äº†å˜é‡ã€‚现在是时候在本章中详细了解它们了。 如果你曾ç»è¿›è¡Œè¿‡ä»»ä½•类型的编ç ï¼Œä½ ä¸€å®šç†Ÿæ‚‰æœ¯è¯­â€œå˜é‡â€ã€‚ @@ -20,13 +24,13 @@ Bash 基础知识系列 #2:在 Bash 中使用å˜é‡ ### 在 Bash shell 中使用å˜é‡ -æ‰“å¼€ç»ˆç«¯å¹¶ä½¿ç”¨éšæœºæ•° 4 åˆå§‹åŒ–å˜é‡ï¼š +æ‰“å¼€ç»ˆç«¯å¹¶ä½¿ç”¨ä¸€ä¸ªéšæœºçš„æ•°å­— 4 åˆå§‹åŒ–å˜é‡ï¼š ``` var=4 ``` -现在你有一个å为 `var` çš„å˜é‡ï¼Œå®ƒçš„值为 `4`.想验è¯ä¸€ä¸‹å—? **通过在å˜é‡å剿·»åŠ  $ æ¥è®¿é—®å˜é‡çš„值**.è¿™ç§°ä¸ºå‚æ•°æ‰©å±•。 +现在你有一个å为 `var` çš„å˜é‡ï¼Œå®ƒçš„值为 `4`。想验è¯ä¸€ä¸‹å—? **通过在å˜é‡å剿·»åŠ  `$` æ¥è®¿é—®å˜é‡çš„值**ã€‚è¿™ç§°ä¸ºå‚æ•°æ‰©å±•。 ``` [abhishek@itsfoss]:~$ echo The value of var is $var @@ -43,7 +47,7 @@ The value of var is 4 ![Different variable types in Bash shell][2] -> 💡 与 Linux 中的其他事物一样,å˜é‡å称也区分大å°å†™.它们å¯ä»¥ç”±å­—æ¯ã€æ•°å­—和下划线 “\_†组æˆã€‚ +> 💡 与 Linux 中的其他事物一样,å˜é‡å称也区分大å°å†™ã€‚它们å¯ä»¥ç”±å­—æ¯ã€æ•°å­—和下划线 “`_`†组æˆã€‚ ### 在 Bash 脚本中使用å˜é‡ @@ -70,19 +74,18 @@ echo "Who's there?" echo "It's me, $USER" ``` -更改文件æƒé™å¹¶è¿è¡Œè„šæœ¬.你在上一章中已ç»å­¦åˆ°äº†ã€‚ +更改文件æƒé™å¹¶è¿è¡Œè„šæœ¬ã€‚ä½ åœ¨ä¸Šä¸€ç« ä¸­å·²ç»å­¦åˆ°äº†ã€‚ 这是它为我生æˆçš„内容: ![Using global variable in Bahs script][3] -**ä½ æ˜¯å¦æ³¨æ„到它如何自动将我的å字添加到其中?** 这就是包å«ç”¨æˆ·å的全局å˜é‡ $USER 的魔力。 +**ä½ æ˜¯å¦æ³¨æ„到它如何自动将我的å字添加到其中?** 这就是包å«ç”¨æˆ·å的全局å˜é‡ `$USER` 的魔力。 -ä½ å¯èƒ½è¿˜æ³¨æ„到,我有时将 " 与 echo 一起使用,但其他时候则ä¸ä½¿ç”¨ã€‚这是故æ„的。[bash 中的引å·][4] 有特殊å«ä¹‰ã€‚它们å¯ç”¨äºŽå¤„ç†ç©ºæ ¼å’Œå…¶ä»–特殊字符。让我展示一个 例å­ã€‚ +ä½ å¯èƒ½è¿˜æ³¨æ„到,我有时将 `"` 与 `echo` 一起使用,但其他时候则ä¸ä½¿ç”¨ã€‚这是故æ„的。[bash 中的引å·][4] 有特殊å«ä¹‰ã€‚它们å¯ç”¨äºŽå¤„ç†ç©ºæ ¼å’Œå…¶ä»–特殊字符。让我展示一个例å­ã€‚ ### 处ç†å˜é‡ä¸­çš„空格 -Let's say you have to use a variable called `greetings` that has the value `hello and welcome`. å‡è®¾ä½ å¿…须使用一个å为 `greetings` çš„å˜é‡ï¼Œå…¶å€¼ä¸º `hello and welcome`。 如果你å°è¯•åƒè¿™æ ·åˆå§‹åŒ–å˜é‡ï¼š @@ -110,7 +113,7 @@ greetings="Hello and Welcome" ### 将命令输出分é…ç»™å˜é‡ -æ˜¯çš„ï¼ ä½ å¯ä»¥å°†å‘½ä»¤çš„输出存储在å˜é‡ä¸­å¹¶åœ¨è„šæœ¬ä¸­ä½¿ç”¨å®ƒä»¬.这称为命令替æ¢ã€‚ +是的ï¼ä½ å¯ä»¥å°†å‘½ä»¤çš„输出存储在å˜é‡ä¸­å¹¶åœ¨è„šæœ¬ä¸­ä½¿ç”¨å®ƒä»¬ã€‚è¿™ç§°ä¸ºå‘½ä»¤æ›¿æ¢ã€‚ ``` var=$(command) @@ -127,13 +130,13 @@ Today's date is 06/19/23 ![Command substitution in bash][6] -旧语法使用å引å·è€Œä¸æ˜¯ $() 进行命令替æ¢.虽然它å¯èƒ½ä»ç„¶æœ‰æ•ˆï¼Œä½†ä½ åº”该使用新的推è符å·ã€‚ +旧语法使用å引å·è€Œä¸æ˜¯ `$()` 进行命令替æ¢ã€‚虽然它å¯èƒ½ä»ç„¶æœ‰æ•ˆï¼Œä½†ä½ åº”该使用新的推è符å·ã€‚ -> 💡 å˜é‡ä¼šæ›´æ”¹å€¼ï¼Œé™¤éžä½ å£°æ˜Žä¸€ä¸ªâ€œå¸¸é‡â€å˜é‡ï¼Œå¦‚下所示:`readonly pi=3.14`.åœ¨è¿™ç§æƒ…况下,å˜é‡ `pi` 的值无法更改,因为它被声明为 `readlonly`。 +> 💡 å˜é‡ä¼šæ›´æ”¹å€¼ï¼Œé™¤éžä½ å£°æ˜Žä¸€ä¸ªâ€œå¸¸é‡â€å˜é‡ï¼Œå¦‚下所示:`readonly pi=3.14`ã€‚åœ¨è¿™ç§æƒ…况下,å˜é‡ `pi` 的值无法更改,因为它被声明为 `readlonly`。 ### ðŸ‹ï¸ 练习时间 -是时候练习你所学到的东西了.è¿™é‡Œæœ‰ä¸€äº›ç»ƒä¹ æ¥æµ‹è¯•你的学习情况。 +æ˜¯æ—¶å€™ç»ƒä¹ ä½ æ‰€å­¦åˆ°çš„ä¸œè¥¿äº†ã€‚è¿™é‡Œæœ‰ä¸€äº›ç»ƒä¹ æ¥æµ‹è¯•你的学习情况。 **练习 1**:编写一个 bash è„šæœ¬ï¼Œä»¥ä»¥ä¸‹æ ¼å¼æ‰“å°ä½ çš„用户åã€å½“å‰å·¥ä½œç›®å½•ã€ä¸»ç›®å½•和默认 shell。 @@ -145,7 +148,7 @@ My home directory is XYZ My default shell is XYZ ``` -**æç¤º**:使用全局å˜é‡ $USERã€$PWDã€$HOME å’Œ $SHELL。 +**æç¤º**:使用全局å˜é‡ `$USER`ã€`$PWD`ã€`$HOME` å’Œ `$SHELL`。 **练习 2:** 编写一个 bash 脚本,声明一个å为 `price` çš„å˜é‡.使用它æ¥èŽ·å–以下格å¼çš„输出: @@ -156,12 +159,14 @@ Tomorrow's price is $Y 其中 X 是å˜é‡ `price` çš„åˆå§‹å€¼ï¼Œå¹¶ä¸”明天价格翻å€ã€‚ -**æç¤º**:使用 / 转义特殊字符 $。 +**æç¤º**:使用 `\` 转义特殊字符 `$`。 练习的答案å¯ä»¥åœ¨ç¤¾åŒºçš„这个专用帖å­ä¸­è®¨è®ºã€‚ 在 Bash åŸºç¡€çŸ¥è¯†ç³»åˆ—çš„ä¸‹ä¸€ç« ä¸­ï¼Œä½ å°†äº†è§£å¦‚ä½•é€šè¿‡ä¼ é€’å‚æ•°å’ŒæŽ¥å—用户输入æ¥ä½¿ bash 脚本具有交互性。 +*(题图:MJ/37c5c26e-3289-4ebd-b8ae-88eb8a3b2eb1)* + -------------------------------------------------------------------------------- via: https://itsfoss.com/bash-use-variables/ @@ -169,7 +174,7 @@ via: https://itsfoss.com/bash-use-variables/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) è£èª‰æŽ¨å‡º @@ -181,3 +186,4 @@ via: https://itsfoss.com/bash-use-variables/ [4]: https://linuxhandbook.com:443/quotes-in-bash/ [5]: https://itsfoss.com/content/images/2023/06/using-spaces-in-bash-variable.png [6]: https://itsfoss.com/content/images/2023/06/command-substitue-bash-variable.png +[0]: https://img.linux.net.cn/data/attachment/album/202307/12/111750bzruv9jiako6j694.jpg \ No newline at end of file