シェルスクリプトは、シェルのコマンド解釈機能を使用して、プレーンテキストファイルを解析し、これらの関数を実行します。シェルスクリプトは、一連のコマンドの集合であるとも言えます。
シェルは win/Unix/Linux 上で直接使用でき、多数の内部システム関数を呼び出してプログラムを解釈して実行できます。シェル スクリプトに習熟していれば、コンピュータの操作と保存が容易になります。多くの時間。
Shell アプリケーションのシナリオ
Shell でできること
いくつかの複雑なコマンドを簡略化します (通常、Github コードを送信するには多くの手順が必要ですが、Shell を使用すると 1 つの手順に簡素化できます)
次のことができますスクリプトは、プロジェクト内の最新の SDK (ライブラリ) の自動置き換えを自動的に実装します
自動パッケージ化、コンパイル、パブリッシュおよびその他の機能
ディスク内の空のフォルダーをクリーンアップします
通常のライブ スクリプトを試すことができます
Shell でできないこと
正確な計算が必要な場合
言語効率が必要な場合
ネットワーク操作が必要な場合
つまり、シェルはスクリプトを迅速に開発でき、開発プロセスを簡素化できますが、高級言語の置き換えには使用できません
シェルの仕組み
シェルはコンパイルする必要がないため、スクリプト言語と呼ぶことができます。ただし、コンパイルと実行には従来の言語よりも多くの解釈プロセスが必要となるため、従来の直接コンパイルされた言語よりも効率が若干劣ります。
最も単純なスクリプト:
#!/bin/bashecho "Hello World"
テキスト編集ツールを開いて上記のように編集し、test.shとして保存するだけです
スクリプトを実行します:
1. cd 到该目录下2. chmod +x ./test.sh #给脚本权限3. ./test.sh #执行脚本
このようにして、最初の最も単純なスクリプトを作成しました。次に、いくつかの複雑なスクリプトを作成してみましょう。
シェルの変数
myText="hello world"muNum=100
ここで注意する必要があるのは、「=」の前後にスペースを入れることはできず、命名ルールは他の言語と同じであることです。
変数へのアクセス
myText="hello world"muNum=100echo $myTextecho muNum
変数にアクセスしたい場合は、$ を使用する必要があります。そうしないと、次の図に示すように、出力はプレーン テキスト コンテンツになります。

シェルで四則演算
サンプルプログラム
#!/bin/bashecho "Hello World !"a=3b=5val=`expr $a + $b`echo "Total value : $val"val=`expr $a - $b`echo "Total value : $val"val=`expr $a \* $b`echo "Total value : $val"val=`expr $a / $b`echo "Total value : $val"
ここで注意が必要なのは、変数を定義する際に「=」の前後にスペースを入れてはいけないということです。ただし、四則演算を行う場合は演算記号の前後にスペースが必要で、乗算の場合はエスケープする必要があります。

その他の演算子 =、==、!=、! 、-o、-a
サンプルプログラム
a=3b=5val=`expr $a / $b`echo "Total value : $val"val=`expr $a % $b`echo "Total value : $val"if [ $a == $b ]then echo "a is equal to b"fiif [ $a != $b ]then echo "a is not equal to b"fi

関係演算子
#!/bin/sh サンプルプログラム
a=10b=20if [ $a -eq $b ]then echo "true"else echo "false"fiif [ $a -ne $b ]then echo "true"else echo "false"fiif [ $a -gt $b ]then echo "true"else echo "false"fiif [ $a -lt $b ]then echo "true"else echo "false"fiif [ $a -ge $b ]then echo "true"else echo "false"fiif [ $a -le $b ]then echo "true"else echo "false"fi

字符串运算符


字符串
#!/bin/shmtext="hello" #定义字符串 mtext2="world"mtext3=$mtext" "$mtext2 #字符串的拼接echo $mtext3 #输出字符串echo ${#mtext3} #输出字符串长度echo ${mtext3:1:4} #截取字符串

数组
#!/bin/sharray=(1 2 3 4 5) #定义数组 array2=(aa bb cc dd ee) #定义数组 value=${array[3]} #找到某一个下标的数,然后赋值echo $value #打印 value2=${array2[3]} #找到某一个下标的数,然后赋值echo $value2 #打印 length=${#array[*]} #获取数组长度echo $length

输出程序
echo
#!/bin/shecho "hello world" echo hello world text="hello world"echo $textecho -e "hello \nworld" #输出并且换行echo "hello world" > a.txt #重定向到文件echo `date` #输出当前系统时间

printf
同c语言,就不过多介绍了
判断语句
if
if-else
if-elseIf
case
#!/bin/sha=10b=20if [ $a == $b ]then echo "true"fiif [ $a == $b ]then echo "true"else echo "false"fiif [ $a == $b ]then echo "a is equal to b"elif [ $a -gt $b ]then echo "a is greater than b"elif [ $a -lt $b ]then echo "a is less than b"else echo "None of the condition met"fi

test命令
test $[num1] -eq $[num2] #判断两个变量是否相等 test num1=num2 #判断两个数字是否相等
for循环
#!/bin/shfor i in {1..5}doecho $idonefor i in 5 6 7 8 9doecho $idonefor FILE in $HOME/.bash*do echo $FILEdone
<code class="bash"><span class="hljs-meta"><br/><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/001/e287dce1bca30a9896dc8bd2ecb0e156-15.png?x-oss-process=image/resize,p_40" class="lazy" alt=""/></span></code>
while循环
#!/bin/shCOUNTER=0while [ $COUNTER -lt 5 ]doCOUNTER=`expr $COUNTER + 1`echo $COUNTERdoneecho '请输入。。。'echo 'ctrl + d 即可停止该程序'while read FILMdoecho "Yeah! great film the $FILM"done
以上是while循环的两种用法,第一种是比较常规的,执行循环,然后每次都把控制的数加1,就可以让while循环有退出的条件了。
第二种是用户从键盘数据,然后把用户输入的文字输出出来。
跳出循环
break #跳出所有循环 break n #跳出第n层f循环 continue #跳出当前循环
函数
#!/bin/shsysout(){echo "hello world"} sysout
定义一个没有返回值的函数,然后调用该函数
#!/bin/shtest(){ aNum=3anotherNum=5return $(($aNum+$anotherNum)) } test result=$?echo $result
定义一个有返回值的函数,调用该函数,输出结果

#!/bin/shtest(){echo $1 #接收第一个参数echo $2 #接收第二个参数echo $3 #接收第三个参数echo $# #接收到参数的个数echo $* #接收到的所有参数 } test aa bb cc
定义了一个需要传递参数的函数

重定向
$echo result > file #将结果写入文件,结果不会在控制台展示,而是在文件中,覆盖写 $echo result >> file #将结果写入文件,结果不会在控制台展示,而是在文件中,追加写echo input
写一个自动输入命令的脚本
自动提交github仓库的脚本
#!/bin/bashecho "-------Begin-------"git add . git commit -m $1echo $1git push origin masterecho "--------End--------"

以上便是我对shell知识的总结,欢迎大家点心,评论,一起讨论~~
以上がシェルスクリプトはどのように使用すればよいのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、DebianシステムのOpenSSL構成を確認して、システムのセキュリティステータスをすばやく把握できるように、いくつかの方法を紹介します。 1.最初にOpenSSLバージョンを確認し、OpenSSLがインストールされているかどうかを確認し、バージョン情報を確認します。端末に次のコマンドを入力します。OpenSSlversionがインストールされていない場合、システムはエラーを促します。 2。構成ファイルを表示します。 OpenSSLのメイン構成ファイルは、通常/etc/ssl/openssl.cnfにあります。テキストエディター(Nanoなど)を使用して、次のように表示できます。sudonano/etc/ssl/openssl.cnfこのファイルには、キー、証明書、暗号化アルゴリズムなどの重要な構成情報が含まれています。 3。OPEを利用します

このガイドでは、DebianシステムにHadoop開発環境を構築する方法について詳しく説明しています。 1. Java Development Kit(JDK)最初にインストールして、OpenJDKをインストールします:sudoaptupDateDayptinInstalopenjdk-11-Jdk-configure java_home環境変数:sudonano/etc/環境ファイルの最後に(実際のJDKバージョンに応じてパスを調整): java_home = "/usr/lib/jvm/java-11-openjdk-amd64"保存して終了し、次に実行します

DebianシステムでHadoopリソースを効果的に管理するには、次の手順が必要です。HadoopDeployment:最初に、DebianシステムのHadoopのインストールと構成を完了します。これには、Hadoopディストリビューションパッケージのダウンロード、減圧、環境変数の設定などの必要な操作が含まれます。クラスター構成:インストールが完了したら、HDFS(Hadoop分散ファイルシステム)とYARN(HadothOrresourceNegotiator)の設定をカバーするHadoopクラスターを構成します。 core-site.xml、hdfs-site.xml、mapred-site.xなどのコア構成ファイルを変更する必要があります。

DebiantomCatログのセキュリティを改善するには、次の重要なポリシーに注意する必要があります。1。許可制御とファイル管理:ログファイル許可:デフォルトのログファイル許可(640)はアクセスを制限します。 Catalina.shスクリプト(たとえば、0027から0022に変更)のUMASK値を変更するか、LOG4J2構成ファイルにFilePermissionsを直接設定して、適切な読み取り許可を確保することをお勧めします。ログファイルの場所:Tomcatログは通常、/opt/tomcat/logs(または同様のパス)にあり、このディレクトリの許可設定を定期的にチェックする必要があります。 2。ログの回転と形式:ログ回転:server.xmlを構成します

Tomcatサーバーログの警告メッセージは、アプリケーションのパフォーマンスや安定性に影響を与える可能性のある潜在的な問題を示しています。これらの警告情報を効果的に解釈するには、次のキーポイントに注意を払う必要があります。警告コンテンツ:警告情報を注意深く調査して、タイプ、原因、可能なソリューションを明確にします。警告情報は通常、詳細な説明を提供します。ログレベル:Tomcatログには、情報、警告、エラーなど、さまざまなレベルの情報が含まれています。「WARN」レベルの警告は致命的ではない問題ですが、注意が必要です。タイムスタンプ:問題が発生した時点を追跡し、特定のイベントまたは操作との関係を分析するために警告が発生した時刻を記録します。コンテキスト情報:警告情報の前後にログコンテンツを表示し、取得します

Tomcatログは、メモリリークの問題を診断するための鍵です。 Tomcatログを分析することにより、メモリの使用状況とガベージコレクション(GC)の動作に関する洞察を得ることができ、メモリリークを効果的に見つけて解決できます。 Tomcatログを使用してメモリリークをトラブルシューティングする方法は次のとおりです。1。GCログ分析最初に、詳細なGCロギングを有効にします。 Tomcatの起動パラメーターに次のJVMオプションを追加します:-xx:printgcdetails-xx:printgcdateStamps-xloggc:gc.logこれらのパラメーターは、GCタイプ、リサイクルオブジェクトサイズ、時間などの情報を含む詳細なGCログ(GC.log)を生成します。分析GC.LOG

Debianシステムの下でのサーバーのパフォーマンスに対するApacheログの影響は、両刃の剣であり、プラスの効果と潜在的なマイナス効果の両方があります。肯定的な側面:問題診断ツール:Apacheログは、すべての要求と応答をサーバーに詳細に記録し、障害を迅速に見つけるための貴重なリソースです。エラーログを分析することにより、構成エラー、許可の問題、およびその他の例外を簡単に識別できます。セキュリティ監視センチネル:アクセスログは、悪意のある攻撃の試みなど、潜在的なセキュリティの脅威を追跡できます。ログ監査ルールを設定することにより、異常な活動を効果的に検出できます。パフォーマンス分析アシスタント:アクセスロギングリクエストの頻度とリソース消費は、どのページまたはサービスが最も人気があるかを分析し、リソース割り当てを最適化するのに役立ちます。トップまたはhtopなどと組み合わせて。

この記事では、Debianシステムの下でApacheログを分析することにより、Webサイトのパフォーマンスを改善する方法について説明します。 1.ログ分析の基本Apacheログは、IPアドレス、タイムスタンプ、リクエストURL、HTTPメソッド、応答コードなど、すべてのHTTP要求の詳細情報を記録します。 Debian Systemsでは、これらのログは通常、/var/log/apache2/access.logおよび/var/log/apache2/error.logディレクトリにあります。ログ構造を理解することは、効果的な分析の最初のステップです。 2。ログ分析ツールさまざまなツールを使用してApacheログを分析できます。コマンドラインツール:GREP、AWK、SED、およびその他のコマンドラインツール。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

WebStorm Mac版
便利なJavaScript開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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