成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Bash 特殊變量($0,$?,$#,$@,$$,$*)

系統
在本文中,我們將提供所有 Bash 特殊變量的深入指南,包括它們的使用示例和常見的問題避免方法。

Bash 是一個功能強大的 Shell,提供了各種特殊變量,可以用于操作和控制腳本的行為。這些變量提供了有關腳本運行環境的基本信息,包括命令行參數、當前進程 ID 和上次執行命令的狀態。

在本文中,我們將提供所有 Bash 特殊變量的深入指南,包括它們的使用示例和常見的問題避免方法。

讓我們詳細討論特殊變量并提供示例。

$0 – 正在執行的腳本的名稱

在 Bash 中,$0 是一個特殊參數,它保存當前正在執行的腳本或Shell的名稱。它也被稱為腳本的“名稱”或“零號參數”。

#!/bin/bash
# Linux迷 www.linuxmi.com
echo "當前運行的腳本是: $0"

例如,假設您有一個名為“www.linuxmi.com.sh”的腳本,您想從任何目錄運行它。那么,您可以使用 $0 變量來確定正在執行的腳本的名稱:

#!/bin/bash
# Linux迷 www.linuxmi.com
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo "腳本正在從 $SCRIPT_DIR 運行"

$1,$2,…,$9 – 命令行參數

$1,$2,…,$9 變量包含傳遞給腳本的前九個命令行參數。這些變量對于創建接受用戶輸入的 shell 腳本非常有用。

例如,假設您有一個名為“??greet.sh??”的腳本,它將一個名稱作為其第一個命令行參數。在這種情況下,您可以使用 $1 變量來檢索名稱,然后在腳本的輸出中使用它。

#!/bin/bash
# Linux迷 www.linuxmi.com
echo "Hello, $1!"

如果腳本需要訪問超過九個命令行參數,則可以使用 ${10}、${11},…,${N} 變量來檢索它們。這些變量可以與 shift 命令一起使用,以批處理方式處理命令行參數。確保變量用 {} 括起來。

$# – 命令行參數的數量

$# 變量包含傳遞給腳本的命令行參數數量。此變量對于創建驗證用戶輸入的 shell 腳本非常有用。

例如,假設您有一個名為“??linuxmi.sh??”的腳本,需要兩個命令行參數。在這種情況下,您可以使用 $# 變量來確保提供了正確數量的參數。

#!/bin/bash
# Linux迷 www.linuxmi.com
if [[ $# -ne 2 ]]
then
echo "Usage: linuxmi.sh [username] [password]"
exit 1
fi

$* – 將所有命令行參數作為一個字符串

$* 變量包含作為單個字符串傳遞給腳本的所有命令行參數。該變量對于需要操作整個命令行字符串的Shell腳本非常有用。

例如,假設您有一個名為“join.sh”的腳本,用于連接作為命令行參數提供的兩個字符串。在這種情況下,您可以使用$*變量來連接這些字符串。

#!/bin/bash
# Linux迷 www.linuxmi.com
joined="$*

$@ – 將所有命令行參數作為數組

$@ 變量包含作為數組傳遞給腳本的所有命令行參數。該變量對于需要操作單個命令行參數的Shell腳本非常有用。

例如,假設您有一個名為“list.sh”的腳本,用于列出作為命令行參數提供的目錄中的所有文件。在這種情況下,您可以使用$@變量來迭代每個目錄名稱并列出該目錄中的文件。

#!/bin/bash
# Linux迷 www.linuxmi.com
for directory in "$@"
do
echo "正在列出中的文件 $directory:"
ls -l $directory
done

$? – 最近執行命令的退出狀態

$? 變量包含最近執行命令的退出狀態。該變量對于需要處理錯誤或根據命令的成功或失敗采取不同操作的Shell腳本非常有用。

例如,假設您有一個名為“create-file.sh”的腳本,用于創建一個文件并返回表示成功或失敗的退出狀態。在這種情況下,您可以使用$?變量來檢查退出狀態并采取適當的操作。

#!/bin/bash
# Linux迷 www.linuxmi.com
touch linuximi.txt
if [[ $? -eq 0 ]]
then
echo "文件創建成功"
else
echo "創建文件時出錯"
fi

$$ 變量包含當前腳本的進程ID

該變量對于需要管理多個進程或創建唯一文件名的Shell腳本非常有用。 例如,假設您有一個名為“log.sh”的腳本,用于記錄信息到一個基于進程ID的唯一文件名的文件中。在這種情況下,您可以使用$$變量來生成一個唯一的文件名。

#!/bin/bash
# Linux迷 www.linuxmi.com
LOG_FILE="log_$$.txt"
echo "正在記錄到文件 $LOG_FILE"

$! – 最近后臺命令的進程ID

$! 變量包含腳本執行的最近后臺命令的進程ID。該變量對于需要管理多個進程或監視長時間運行的命令的Shell腳本非常有用。

例如,假設您有一個名為“www.linuxmi.com.sh”的腳本,用于在后臺運行一個命令并記錄其進度。在這種情況下,您可以使用$!變量來監視命令的進度。

#!/bin/bash
# Linux迷 www.linuxmi.com
mycommand &
pid=$!
while ps -p $pid >/dev/null; do
echo "命令仍在運行"
sleep 1
done
echo "命令已完成"

總結

Bash 特殊變量提供了有關腳本運行環境的重要信息。這些變量使您能夠創建更加靈活、健壯和不容易出現異常或崩潰的Shell腳本。通過掌握這些變量的用法,您可以將自己的Shell腳本技能提升到更高的水平。

責任編輯:趙寧寧 來源: Linux迷
相關推薦

2010-07-20 12:52:26

Perl特殊變量

2023-07-12 14:13:03

BashLinux

2018-12-24 09:15:51

BashLinux環境變量

2010-06-23 15:46:27

Linux Bash

2022-11-30 07:47:00

Bash腳本

2010-06-23 17:21:30

Linux Bash

2009-12-18 14:35:01

Ruby奇特變量

2020-06-28 07:33:01

source命令BashLinux

2023-11-13 22:08:05

ShellLinux

2017-03-08 11:10:39

LinuxShell命令

2010-07-20 12:44:20

Perl特殊變量

2023-02-10 09:46:04

bash腳本變量

2022-09-22 07:31:14

Java變量計算

2022-05-09 07:08:14

LinuxBashShell

2023-01-04 10:17:19

LinuxBashshell

2015-08-10 14:37:27

LinuxBash環境變量

2022-12-13 12:55:15

Bash循環

2023-08-22 21:42:03

Bash函數

2023-10-30 17:31:40

Linux提示符顏色

2021-03-17 13:33:02

BashUnixLinux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人一区二区三区在线观看 | aaaa日韩| 久久精品欧美一区二区三区不卡 | 国产成人免费视频网站高清观看视频 | 视频一区 亚洲 | 欧美亚洲日本 | 国产成人精品一区二区三区网站观看 | 日韩一级欧美一级 | 91免费视频观看 | 国产精品日韩欧美一区二区三区 | 最新国产精品精品视频 | 在线一区二区三区 | 91精品久久久久久久久 | 久久91| 日韩成人久久 | 羞羞涩涩在线观看 | 色资源在线观看 | 免费在线观看一区二区三区 | 日韩av一区二区在线观看 | 六月成人网 | 午夜免费视频 | 亚洲永久入口 | 欧美日韩淫片 | 亚洲视频一区二区三区四区 | 婷婷激情综合 | 日本黄色免费大片 | 精品中文字幕视频 | 综合久久色 | 夜夜艹| 毛片在线免费播放 | 国产精品国产三级国产aⅴ中文 | 亚洲精品99 | 在线视频中文字幕 | 日韩中文字幕在线观看 | 欧美日韩精品亚洲 | 亚洲成人三级 | 欧美一区二区三区在线 | 亚洲第一成年免费网站 | 亚洲视频在线看 | 亚洲性网 | 国产亚洲第一页 |