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

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

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

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

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

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

$0 – 正在執(zhí)行的腳本的名稱

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

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

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

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

$1,$2,…,$9 – 命令行參數(shù)

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

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

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

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

$# – 命令行參數(shù)的數(shù)量

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

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

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

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

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

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

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

$@ – 將所有命令行參數(shù)作為數(shù)組

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

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

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

$? – 最近執(zhí)行命令的退出狀態(tài)

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

例如,假設(shè)您有一個名為“create-file.sh”的腳本,用于創(chuàng)建一個文件并返回表示成功或失敗的退出狀態(tài)。在這種情況下,您可以使用$?變量來檢查退出狀態(tài)并采取適當?shù)牟僮鳌?/p>

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

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

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

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

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

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

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

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

總結(jié)

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

責任編輯:趙寧寧 來源: Linux迷
相關(guān)推薦

2010-07-20 12:52:26

Perl特殊變量

2023-07-12 14:13:03

BashLinux

2018-12-24 09:15:51

BashLinux環(huán)境變量

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命令

2023-02-10 09:46:04

bash腳本變量

2010-07-20 12:44:20

Perl特殊變量

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環(huán)境變量

2022-12-13 12:55:15

Bash循環(huán)

2023-08-22 21:42:03

Bash函數(shù)

2022-12-02 14:30:24

Bash腳本數(shù)組

2023-07-20 15:37:50

Bash數(shù)組
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产免费一区二区三区免费视频 | 黄色免费在线观看网站 | 国产精品久久久久久久久久 | 久久精品国产精品青草 | 亚洲精品一区二区三区四区高清 | 国产精品久久久久久久久久久久午夜片 | 国产精品永久免费视频 | 国产欧美精品一区二区 | 国产网站在线免费观看 | 精品视频在线观看 | 亚州综合在线 | 视频一区 亚洲 | 国产一区二区精品在线 | 成人在线国产 | 99色在线| 精品久久久久久久 | 日本免费在线看 | 人人干人人艹 | 色妹子综合网 | 91人人视频在线观看 | 久久久久亚洲精品 | 亚洲欧美在线视频 | 久久新| 欧美国产日韩一区 | 日本在线精品视频 | 亚洲一区二区久久久 | av黄色在线 | 2019天天干夜夜操 | 91传媒在线观看 | 午夜久久久 | 羞羞视频免费在线观看 | 97日日碰人人模人人澡分享吧 | 欧美三级电影在线播放 | 成人影视网址 | 久久精品视频网站 | jizz中国日本| 亚洲精品乱码久久久久久蜜桃91 | 免费看黄视频网站 | 成人亚洲精品 | 欧美国产视频 | 四虎影|