Linuxバージョン: CentOS 7 [root@azfdbdfsdf230lqdg1ba91 ~]# cat /etc/redhat-release CentOS Linux リリース 7.4.1708 (コア) [root@azfdbdfsdf230lqdg1ba91 ~]# uname -a Linux azfdbdfsdf230lqdg1ba91 3.10.0-693.2.2.el7.x86_64 #1 SMP 火曜 9月12日 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux [ルート@azfdbdfsdf230lqdg1ba91 ~]# $ シンボル 草 セット ターゲット $ 記号は Linux システムで多くの重要な役割を果たします。特に、$ があらゆる場所で見られる bash スクリプトを記述するときに重要な役割を果たします。常に変化し、多様であるため、習得して使用すること、特に覚えることは困難です。そこで、その使い方をまとめてコレクションを作成しましょう。これらをマスターしても面接で聞かれることはないので、給料が大幅に上がるわけではありませんが、仕事の効率が向上し、視野が広がります。 現時点で私が知っている $ の用途としては、$、"$"、$0 $1 $n、$#、$@ $*、$?、$()、${}、${#}、$[]、$-、$!、$$ などがあります。追加!$、!!、順番に詳細な説明 $ 変数の値を取得 $は変数の値を取得できる [root@izbp10lqlgy2g31s41bt94z ~]# a=1 [root@izbp10lqlgy2g31s41bt94z ~]# エコー $a 1 変数の値を取得するには、「$」を使用するのが最適です。 なぜこの提案があるのでしょうか? 例をご覧ください [root@izbp10lqlgy2g31s41bt94z ~]# echo a = $a の値を取得します a = 1 の値を取得します [root@izbp10lqlgy2g31s41bt94z ~]# echo "a = $a の値を取得" a = 1 の値を取得します ご覧のとおり、二重引用符の有無にかかわらず、効果は同じであるようです。まだ結論を出さずに、読み進めてください。 [root@izbp10lqlgy2g31s41bt94z ~]# a="私はスカイラーです" [root@izbp10lqlgy2g31s41bt94z ~]# [ $a == "私はスカイラーです" ] -bash: [: 引数が多すぎます ここで、[]は条件判定記号であり、testコマンドと同等です。変数 a の値が「i am skyler」に等しいかどうかを判断しようとしています。 [root@izbp10lqlgy2g31s41bt94z ~]# [ "$a" == "私はスカイラーです" ] [root@izbp10lqlgy2g31s41bt94z ~]# echo $? 0 ダブルクォーテーションを使用するだけです。ここでは、$? が事前に使用されており、前のコマンドの実行結果が正しいかどうかを判断することを意味します。出力結果では、0 は実行が成功したことを示し、0 以外の値はエラーを示します。 ${}は変数の境界を区別し、どの変数値を取るかをプログラムに明確に伝えるために使用されます。 次の例では、{}を追加しないと、プログラムはab $abcのどれが変数であるかを判断できず、解析できません。 [root@izbp10lqlgy2g31s41bt94z ~]# echo "a = $abc の値を取得" a の値を取得する = [root@izbp10lqlgy2g31s41bt94z ~]# echo "a = ${a}bc の値を取得" a = 1bcの値を取得します [root@izbp10lqlgy2g31s41bt94z ~]# ${#}変数値の長さを取得する [root@izbp10lqlgy2g31s41bt94z ~]# echo "a = ${#a} の長さを取得" aの長さを取得 = 1 [root@izbp10lqlgy2g31s41bt94z ~]# a=11111 [root@izbp10lqlgy2g31s41bt94z ~]# echo "a = ${#a} の長さを取得" aの長さを取得 = 5 [root@izbp10lqlgy2g31s41bt94z ~]# a=スカイラー [root@izbp10lqlgy2g31s41bt94z ~]# echo "a = ${#a} の長さを取得" aの長さを取得 = 6 [root@izbp10lqlgy2g31s41bt94z ~]# $0 $1 $n ファイル名とパラメータ値を取得します。通常はbashスクリプトで使用されます。 $0 はシェル スクリプト ファイル名を表し、1 から始まりパラメータの数を表し、1 は最初のパラメータを表します。ここでtest.sh実行ファイルを作成します test.shファイルを作成し、コードを入力します [root@izbp10lqlgy2g31s41bt94z ~]# echo 'echo $0 $1 $2' > test.sh [root@izbp10lqlgy2g31s41bt94z ~]# cat test.sh エコー $0 $1 $2 test.sh を実行し、変数 [root@izbp10lqlgy2g31s41bt94z ~] を渡します。# sh test.sh i am skyler test.sh 私は ご覧のとおり、3 つのパラメータのうち最初の 2 つが出力されます。$3 を宣言していないため、ファイル名と最初の 2 つのパラメータが出力されます。 $# パラメータの数を取得する [root@izbp10lqlgy2g31s41bt94z ~]# echo 'echo $# $0 $1' > test.sh [root@izbp10lqlgy2g31s41bt94z ~]# cat test.sh エコー $# $0 $1 [root@izbp10lqlgy2g31s41bt94z ~]# sh test.sh 私はシュアシュアです 4 テスト.sh I $@ $* 配列形式の参照パラメータリスト それらの違いは、二重引用符が使用される場合、渡されたパラメータが1 2 3であると仮定すると、「*」の値は「1 2 3」変数になるということです。 テスト echo '$@ 配列パラメータ形式' x が "$@" の場合 する エコー + $x 終わり echo '$* 配列パラメータ形式' x が "$*" の場合 する エコー + $x 終わり ルート@izbp10lqlgy2g31s41bt94z:~# sh テスト.sh 1 2 3 $@+ 1 の配列パラメータ形式 + 2 + 3 $* 配列パラメータ形式 + 1 2 3 $? 前のコマンドが正常に実行されたかどうかを判定する 実行成功の値は 0 で、失敗の値は 0 以外です。 [root@izbp10lqlgy2g31s41bt94z ~]# ll 総投与量 172 -rw-r--r-- 1 ルート ルート 49392 2019年2月25日 hs_err_pid24203.log -rw-r--r-- 1 ルート ルート 49425 2019年2月13日 hs_err_pid25726.log [root@izbp10lqlgy2g31s41bt94z ~]# echo $? 0 [root@izbp10lqlgy2g31s41bt94z ~]# ca ff -bash: ca: コマンドが見つかりません [root@izbp10lqlgy2g31s41bt94z ~]# echo $? 127 $() は二重引用符を使用するのと同じである
$[] 式の評価 現時点では、[] は判定シナリオには使用されません。[] は一般的に、bash スクリプト内の if while などの条件文での判定として使用されます。 [root@izbp10lqlgy2g31s41bt94z ~]# echo $[5 + 5] 10 $ - シェルで現在使用されているオプションを表示します [root@izbp10lqlgy2g31s41bt94z ~]# エコー $- 彼BH 説明: himBH 内の各文字はシェル オプションです。詳細については、man bash にアクセスして -h -B などを検索してください。詳細については、http://kodango.com/explain-shell-default-options を参照してください。 $! バックグラウンドで実行されている最後のプロセスのPIDを取得します。bashスクリプトのその他のアプリケーション [root@izbp10lqlgy2g31s41bt94z ~]# cat test.sh & [1] 362 [root@izbp10lqlgy2g31s41bt94z ~]# エコー $# $0 $1 ^C [1]+ cat test.shを完了する [root@izbp10lqlgy2g31s41bt94z ~]# echo $! 362 !$ は、前のコマンドのパラメータを次のコマンドのパラメータに渡します。これは通常、より便利であり、bash スクリプトでより多く使用されます。 [root@izbp10lqlgy2g31s41bt94z ~]# cd /Users/skyler/project/test [root@izbp10lqlgy2g31s41bt94z ~]# ll !$ [root@izbp10lqlgy2g31s41bt94z ~]# ll /Users/skyler/project/test 362 !! 前のコマンドを出力します。通常はより便利で、bash スクリプトでよく使用されます。 [root@izbp10lqlgy2g31s41bt94z ~]# !! [root@izbp10lqlgy2g31s41bt94z ~]# ll /Users/skyler/project/test $$ 現在のプロセスのPIDを取得する [root@izbp10lqlgy2g31s41bt94z ~]# エコー $$ 31268 [root@izbp10lqlgy2g31s41bt94z ~]# ps -ef|grep 31268 ルート 31268 31266 0 08:10 pts/0 00:00:00 -bash 現在のプロセスは bash、pid は 31268 です 平日はもっと頻繁に練習し、必要なときに頼んでください この効果は、ページングやセグメントのプルによっても実現できますが、具体的な効果はビジネス シナリオによって異なります。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: MySQL 8.0.15 のインストールと設定のグラフィックチュートリアルと Linux でのパスワード変更
目次文字セット比較ルール4つのレベルの文字セットと比較規則3つのシステム変数このノートは主にMySQ...
1. CPU使用率sar -p (一日中表示) sar -u 1 10 (1: 1秒ごと、10: 1...
背景同僚がセキュリティ プロジェクトに取り組んでおり、AWS サーバーに秘密兵器を展開する必要があり...
達成される効果は、固定ズームが 2 倍になり、マウスが左側の画像領域に入るとマスク レイヤーが表示さ...
この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...
IDEA は Java で最も一般的に使用されている開発ツールであり、Docker は最も人気のある...
地球の円周率と半径、検索ポイントの経度と緯度から、検索ポイントと検索データテーブル間の距離はNキロメ...
みなさんこんにちは。今日はカルーセルの実装についてお話しします。私が作成したカルーセルの効果は次のと...
プロジェクトの作業を開始するときは、ワイヤーフレームを使用してアイデアをスケッチすることが重要です。...
CSS操作 CS $("").css(名前|プロ|[,値|関数]) 位置$(&q...
01. コマンドの概要Linux には充実したヘルプ マニュアルが用意されています。コマンドのパラメ...
インストール時間を節約するために、公式の mysql docker イメージを使用して mysql ...
Redis は、ANSI C で記述されたオープンソースの NoSQL データベースであり、ネットワ...
PCIE には 4 つの異なる仕様があります。下の図でそのうちの 2 つを見てみましょう。マザーボー...
目次1. プロトタイプ2. プロトタイプチェーン2.1 コンストラクタ2.2 電話をかける/申し込む...