SHELL-----スクリプト実行、変数の定義、特殊変数、readの使い方、コマンド結果を変数に割り当てる
3084 ワード
1.3つのスクリプトの実行方法:
1.環境変数環境変数はグローバル変数とも呼ばれ、shellの作成および派生サブshellで使用できます(定義する必要はありません.$UIDなど、直接使用できます). 関連コマンド:set:出力すべての変数env:グローバル変数declareのみ表示:出力すべての変数、関数、整数など 2.一般変数一般変数付与変数名=value変数名=‘value’変数名=‘value’ 3つの方法:
方法1:
文字列はどのように定義しますか?
注意:特に要求がない場合は、文字列に二重引用符を付け、そのまま出力する必要がある場合は一重引用符を付けることをお勧めします.
三.特殊変数
$0:スクリプトファイル名を取得し、実行時にパスが含まれている場合はスクリプトパスを出力します.
$n:現在実行するshellスクリプトのN番目のパラメータを取得し、n=1.9、nが0の場合はスクリプトのファイル名を表し、nが9より大きい場合はlike${10}を括弧で囲む.
$#:スクリプト変数の合計数
$?:前のコマンドの実行結果を示す戻り値0は、実行が成功したことを示し、0でないことを示し、実行が失敗したことを示します.
四、readの使い方:
五.コマンドの結果を変数に割り当てる:
1.sh script.sh | bash script.sh ##
2.path/script.sh | ./script.sh ## ,
3.source script.sh | . script.sh ## source . shell , shell shell
二.変数の定義:1.環境変数
方法1:
[root@server ~]# a=hello
[root@server ~]# echo $a
hello
方法二:[root@server ~]# b='hello'
[root@server ~]# echo $b
hello
方法3:[root@server ~]# c="hello"
[root@server ~]# echo $c
hello
文字列はどのように定義しますか?
[root@server ~]# a=westos-$a
[root@server ~]# echo $a
westos-hello
[root@server ~]# b='westos-$a'
[root@server ~]# echo $b
westos-$a
[root@server ~]# c="westos-$a"
[root@server ~]# echo $c
westos-westos-hello
[root@server ~]# a="westos hello"
[root@server ~]# echo $a
westos hello
注意:特に要求がない場合は、文字列に二重引用符を付け、そのまま出力する必要がある場合は一重引用符を付けることをお勧めします.
三.特殊変数
$0: shell , ,
$n(>0): n
$#:
$*:
$@:
$?: , 0
$$: shell
$0:スクリプトファイル名を取得し、実行時にパスが含まれている場合はスクリプトパスを出力します.
[root@server mnt]# cat westos.sh
#!/bin/bash
echo $0
[root@server mnt]# sh westos.sh
westos.sh
[root@server mnt]# /mnt/westos.sh
/mnt/westos.sh
$n:現在実行するshellスクリプトのN番目のパラメータを取得し、n=1.9、nが0の場合はスクリプトのファイル名を表し、nが9より大きい場合はlike${10}を括弧で囲む.
[root@server mnt]# cat westos.sh
#!/bin/bash
echo $1 $2
[root@server mnt]# sh westos.sh hello westos
hello westos
[root@server mnt]# sh westos.sh hello redhat
hello redhat
[root@server mnt]# echo \${1..10} > westos.sh
[root@server mnt]# cat westos.sh
$1 $2 $3 $4 $5 $6 $7 $8 $9 $10
[root@server mnt]# sh westos.sh {1..10}
1 2 3 4 5 6 7 8 9 10
[root@server mnt]# sh westos.sh {a..z}
a b c d e f g h i a0
[root@server mnt]# sh westos.sh {a..z}
a b c d e f g h i j
$#:スクリプト変数の合計数
[root@server mnt]# cat westos.sh
echo $1 $2 $3 $4 $5 $6 $7 $8 $9
echo $#
[root@server mnt]# sh westos.sh {1..100}
1 2 3 4 5 6 7 8 9
100
$?:前のコマンドの実行結果を示す戻り値0は、実行が成功したことを示し、0でないことを示し、実行が失敗したことを示します.
四、readの使い方:
[root@server mnt]# read str
westos hello
[root@server mnt]# echo $str
westos hello
[root@server mnt]# read -p " :" i
:10
五.コマンドの結果を変数に割り当てる:
[root@server mnt]# CMD=`ls -l`
[root@server mnt]# echo $CMD
total 8 -rwxr-xr-x. 1 root root 492 Dec 22 10:25 test.sh -rwxr-xr-x. 1 root root 40 Dec 22 10:40 westos.sh
[root@server mnt]# CMD=$(ls -l)
[root@server mnt]# echo $CMD
total 8 -rwxr-xr-x. 1 root root 492 Dec 22 10:25 test.sh -rwxr-xr-x. 1 root root 40 Dec 22 10:40 westos.sh