Linux シェル スクリプトの特殊文字の意味は何ですか?
Linux シェル スクリプトでは、さまざまな意味と戻り値を表すいくつかの特別なパラメーターが事前定義されています。以下に 1 つずつまとめます。
1.[$0]: スクリプト名
$0
返回当前执行的shell
脚本的名称。
2.【1-9】:命令行参数1到9
$1-$9
这9个分别代表脚本执行命令第一个参数、第二个参数、第三个参数……第9个参数。
例如,假设我们有一个名为 test.sh
的Shell脚本,它的内容如下:
#!/bin/bash echo "Script name: $0" echo "First argument: $1" echo "Second argument: $2"
在运行脚本时,我们可以给它传递两个参数,比如:
./test.sh hello world
这时候脚本会输出:
Script name: test.sh First argument: hello Second argument: world
说明 代表脚本名,1 代表第一个参数,$2代表第二个参数。
3.【 $#】:参数个数
它表示所有参数的个数。
#!/bin/bash echo "Number of arguments: $#"
运行脚本 ./test.sh hello world
,输出 Number of arguments: 2
4. 【$*】:所有参数
$*
表示所有参数。
#!/bin/bash echo "All arguments: $*"
运行脚本 ./test.sh hello world
,输出 All arguments: hello world
5. 【$@】:所有参数
$@
也表示所有参数:
#!/bin/bash echo "All arguments: $@"
运行脚本 ./test.sh hello world
,输出 All arguments: hello world
上面$*和$@
都是用来获取所有脚本参数的特殊变量。它们之间的区别在于,如何将参数作为单个字符串或多个独立字符串进行处理。
$*
会把所有的参数解释成一个单词(单个字符串),即每个参数之间不会加上空格,全部组合成一个字符串,用IFS
(默认是空格)分隔。所以,将*
放在双引号里,预处理$
符号,保持长字符串的完整性:
#!/bin/bash echo "Using $*:" for arg in "$*"; do echo $arg done
$@
会把所有的参数看成是独立的单词(多个独立的字符串),即每个参数之间加上空格,将每个参数作为一个独立的字符串处理。
#!/bin/bash echo "Using $@:" for arg in "$@"; do echo $arg done
下面我们可以通过一个示例来理解两者的区别。假设我们有一个shell
脚本,名为 test.sh
并拥有以下内容:
#!/bin/bash echo "Using $*:" for arg in "$*"; do echo $arg done echo "Using $@:" for arg in "$@"; do echo $arg done
然后,在终端上执行以下命令:
$ ./test.sh one two three
当我们执行脚本时,输出如下所示:
Using $*: one two three Using $@: one two three
我们可以看到,使用∗
时,所有参数都解释为单个字符串,由空格分隔。
而使用@
时,每个参数都被解释为一个单独的字符串,并独立处理。
在大多数情况下,使用$@
是更加灵活和安全的选项,因为它可以独立处理每个参数,而不会将它们合并为单个字符串。
6. 【$?】:上一个命令的退出状态码
#!/bin/bash ls / echo "Exit status code: $?"
由于ls /
应该会执行成功,因此运行脚本后输出 Exit status code: 0
,表示上一个命令执行成功。
7. 【$$】:当前进程ID号
$$
是一个特殊的变量,用于获取当前正在运行的Shell
脚本的进程ID(PID)
。
这个变量对于在Shell
脚本中跟踪和识别进程非常有用,或者将PID
用于生成唯一的临时文件名。
以下是一个简单的示例脚本,它使用$$
变量来创建一个唯一的临时文件名:
#!/bin/bash tempfile=/tmp/myprog.$$ echo "Program is running with PID $$." echo "Temp filename is $tempfile." #rest of the script goes here...
在上述示例中,我们使用了$$
变量来创建一个唯一的文件名,将其存储在$tempfile
变量中,并在控制台输出当前脚本运行的进程ID
。这个唯一的文件名将被用于存储程序输出或其他的过程。
使用$$
变量时,需要注意它只能获取当前Shell
脚本的PID
而不能获取任何子进程或后台任务的PID
。
8. 【$!】:最近一次在后台运行的进程的PID号
在Linux Shell脚本中,!是一个特殊变量,用于获取最近一次在后台运行的进程的PID
号(进程ID
号)。
!
通常用于在脚本中启动后台进程,并且需要获取后台进程的PID
号。
以下是一个示例脚本 test.sh
,它使用&
运算符来将程序启动到后台运行,并使用$!变量获取需要的PID
号:
#!/bin/bash echo "Starting background process..." sleep 5 & background_pid=$! echo "The background process PID is: $background_pid"
上述脚本中的sleep
命令会在后台执行5秒钟,并执行$!
将其PID号赋值给变量background_pid
。
最后,脚本会输出后台进程的PID
号。
执行该脚本的命令是:./test.sh
,其输出如下:
Starting background process... The background process PID is: 12345
其中,12345
应该是实际执行中sleep
进程的PID号,其值随机。
9. 【$-】:获取当前Shell的选项标志
$-
是一个特殊变量,用于获取当前Shell的选项标志(Option Flags
)。选项标志是Shell
用来控制其行为的一些特殊设置。
$-
可以用来获取当前Shell
所使用的选项标志,通常应用于Shell
脚本的调试中,可以帮助我们诊断问题。
以下是一个示例脚本 test.sh
,它使用$-变量获取当前Shell的选项标志及其含义:
#!/bin/bash echo "Value of $-: $-"
上述脚本中,echo
命令会输出当前Shell
的选项标志。
执行该脚本的命令是:./test.sh
,其输出如下:
Value of $-: himBH
上述输出中,选项标志中包含了5个
字符,分别表示以下内容:
h
:bash shell
启用hash
命令时将完成命令名和缓存条目之间的HASH
值打印到标准错误输出中;i
:交互模式运行,即标准输入与终端相连;m
:启用作业控制功能;B
:启用Brace Expansion
(花括号扩展)机制;H
:Shell
扩展历史记录功能,寻找法:$HOME/.bash_history
,如果该文件不存在则新建一个。
10. 【$IFS】:指定Shell脚本中的字段分隔符
$IFS
是一个特殊变量,用于指定Shell
脚本中的字段分隔符。字段分隔符是将一行输入或输出按照不同的字段拆分开来并存储在不同的变量中的标记。
默认情况下,$IFS
的值为空格,制表符和换行符。但是,我们可以将其设置为其他的分隔符来满足特定的需求。
以下是一个示例脚本 test.sh
,它使用$IFS变量来指定不同的分隔符,将一行输入按照分隔符分成不同的变量:
#!/bin/bash echo "Enter a line of values separated by commas (','):" read line echo "Default IFS values: '$IFS'" IFS="," echo "Custom IFS value set to: '$IFS'" echo "Values entered:" for value in $line do echo "$value" done
上述脚本中,通过read
命令读取一行输入,并通过将$IFS设置为逗号来将输入行分隔成不同的变量。最后,使用for
循环按顺序输出不同的变量。
执行该脚本的命令是:./test.sh
,它会提示用户输入一个以逗号分隔的值列表。然后,它将逗号设置为分隔符并按顺序输出每个值。下面是一些示例输入和输出:
输入:
a,b,c,d,e
输出:
Default IFS values: 'n' Custom IFS value set to: ',' Values entered: a b c d e
在上述输出中,$IFS
的初始值为默认值(空格、制表符、换行符),该输入字符串以逗号分隔,然后按逗号分隔的方式打印每个值。
这是一个非常有用的用法,可以将一行以逗号或其他字符分隔的值按分隔符分成不同的变量,进一步处理这些变量值。
关于shell
中这10个
特殊变量,总结如下:
以上がLinux シェル スクリプトの特殊文字の意味は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Cutting は、包括的な編集機能、可変速度のサポート、さまざまなフィルターや美容効果、豊富な音楽ライブラリ リソースを備えたビデオ編集ツールです。このソフトでは動画を直接編集したり、編集スクリプトを作成したりすることができますが、どのように行うのですか?このチュートリアルでは、エディターがスクリプトを編集および作成する方法を紹介します。作成方法: 1. コンピュータ上で編集ソフトウェアをクリックして開き、「作成スクリプト」オプションを見つけてクリックして開きます。 2. 作成台本ページで「台本タイトル」を入力し、概要に撮影内容の簡単な紹介文を入力します。 3. アウトラインに「ストーリーボードの説明」オプションを表示するにはどうすればよいですか?

Linuxシステムで.shファイルを実行するにはどうすればよいですか? Linux システムでは、.sh ファイルはシェル スクリプトと呼ばれるファイルであり、一連のコマンドを実行するために使用されます。 .sh ファイルの実行は非常に一般的な操作です。この記事では、Linux システムで .sh ファイルを実行する方法と具体的なコード例を紹介します。方法 1: 絶対パスを使用して .sh ファイルを実行する Linux システムで .sh ファイルを実行するには、絶対パスを使用してファイルの場所を指定できます。具体的な手順は次のとおりです。 ターミナルを開きます。

esd ファイルは Windows オペレーティング システムで使用される圧縮形式であり、ISO ファイルはディスク コピーまたは仮想光学ドライブの作成に使用されるディスク イメージ ファイルです。 esd ファイルを iso ファイルに変換する必要がある場合、ISO ファイルの方が一般的に使用されており、使いやすいためかもしれません。以下では、この変換プロセスを完了するための一般的な方法をいくつか紹介します。方法 1: ESDDecrypter を使用する ESDDecrypter は、esd ファイルを復号化して iso ファイルに変換するために特別に使用されるプログラムです。

Linux システムでファイルを処理する場合、ファイルの末尾の行を削除する必要がある場合があります。この操作は実際のアプリケーションでは非常に一般的で、いくつかの簡単なコマンドで実行できます。この記事では、Linux システムでファイルの末尾の行をすばやく削除する手順と、具体的なコード例を紹介します。ステップ 1: ファイルの最終行を確認する 削除操作を実行する前に、最初にファイルの最終行がどの行であるかを確認する必要があります。ファイルの最後の行を表示するには、tail コマンドを使用できます。具体的なコマンドは次のとおりです: tail-n1filena

win7 で butt ファイルを実行できないのはなぜですか? 最近、Windows7 オペレーティング システムを使用している多くのユーザーが .bat ファイルを実行できないと報告しています。これは広範な議論と混乱を引き起こしました。正常に機能するオペレーティング システムが単純な .bat ファイルを実行できないのはなぜですか?まず、.bat ファイルの背景を理解する必要があります。バッチ ファイルとも呼ばれる .bat ファイルは、Windows コマンド インタープリタ (cmd.ex) で使用できる一連のコマンドが含まれるプレーン テキスト ファイルです。

この Windows PowerShell スクリプト チュートリアルは、テクノロジ愛好家でも、スクリプト スキルの向上を目指す専門家でも、初心者向けに設計されています。 PowerShell スクリプトに関する予備知識がない場合は、この記事は基本から始めて、あなたに合わせてカスタマイズしてください。 PowerShell 環境のインストール手順をマスターし、PowerShell スクリプトの主な概念と機能を説明します。 PowerShell スクリプトについてさらに学ぶ準備ができている場合は、このエキサイティングな学習の旅に一緒に乗り出しましょう。 WindowsPowerShell とは何ですか? PowerShell は、Microsoft によって開発されたハイブリッド コマンド システムです。

IT 管理者またはテクノロジーの専門家であれば、自動化の重要性を認識している必要があります。特に Windows ユーザーにとって、Microsoft PowerShell は最高の自動化ツールの 1 つです。 Microsoft は、サードパーティのアプリケーションをインストールする必要なく、自動化のニーズに対応するさまざまなツールを提供しています。このガイドでは、PowerShell を活用してタスクを自動化する方法について詳しく説明します。 PowerShell スクリプトとは何ですか? PowerShell の使用経験がある場合は、コマンドを使用してオペレーティング システムを構成したことがあるかもしれません。スクリプトは、.ps1 ファイル内のこれらのコマンドの集合です。 .ps1 ファイルには、基本的な Get-Help など、PowerShell によって実行されるスクリプトが含まれています。

i9-12900H は 14 コア プロセッサです。使用されているアーキテクチャとテクノロジはすべて新しく、スレッドも非常に高速です。全体的な動作は優れており、いくつかのパラメータが改善されています。特に包括的で、ユーザーに優れたエクスペリエンスをもたらします。 。 i9-12900H パラメータ評価レビュー: 1. i9-12900H は、q1 アーキテクチャと 24576kb プロセス テクノロジを採用した 14 コア プロセッサで、20 スレッドにアップグレードされています。 2. 最大 CPU 周波数は 1.80! 5.00 ghz で、主にワークロードによって異なります。 3. 価格と比較すると、非常に適しており、価格性能比が非常に優れており、通常の使用が必要な一部のパートナーに非常に適しています。 i9-12900H のパラメータ評価とパフォーマンスの実行スコア
