記事のディレクトリ
1 $?$#$ * $ N $ 0
$?
出力に一度それがあるならば、それは言った0
:その成功;代わりに0
、失敗を示し$#
これは、スクリプトのパラメータを表し、个数
$*
これは、対応するパラメータの値を表します$n
(と表現n>=1
)パラメータ$0
スクリプト名ことを示します
###这是测试脚本
#!/bin/sh
echo 这是脚本名字:$0
echo 总共有$#个人,分别是$*
echo 第一个人是$1,第二个人是$2
### 这是运行结果
这是脚本名字:sympol.sh
总共有2个人,分别是李四 张三
第一个人是李四,第二个人是张三
$?
テスト:
2セミコロン
分号
これは、複数の文の中で分隔符号
、唯一の文末尾无需分号
の最後の文でもある後、无需分号
、それ以外の場合はエラー
3重引用符
单引号
元の文字列は、
双引号
特殊文字のために拡張することができ
、一般的に書き込み、二重引用符を使用していることをされていません
a=bcdef
echo $a # 输出bcdef
echo "$a" #双引号将进行变量扩展 ,输出bcdef
echo '$a' #单引号直接输出$a
4つのブラケットの役割
4.1コマンド置換
$( )
そして`バッククォート(tab
キートップ)と同じ機能:コマンドを交換してください
4.2数値演算
$(( ))
数値演算の整数であり、また使用することができます(( ))
の代わりに、- もう一つは、
$[ ]
数学的な操作を実行しています。
4.3テスト運転
[ ]
代わりにtest
事業者、それもまた使用することができる[[ ]]
代わりに、より厳格なロジック二重括弧を使用します
4.4 $ {}
4.4.1区切り文字
${}
以下のような区切り記号、$ab
同等の、${ab}
と${a}b
ちょうど取るあるa
の値
のlinuxシンボリック例を使用して、あなたは、Linuxに精通して私のゲームを参照することができます
4.4.2は、パス、ファイル名、サフィックスを取ります
#假设一个变量名为file
file=/dir1/dir2/dir3/my.file.txt
${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt
${file#*.}:删掉第一个 . 及其左边的字符串:file.txt
${file##*.}:删掉最后一个 . 及其左边的字符串:txt
${file%/*}:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:删掉第一个 / 及其右边的字符串:(空值)
${file%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
覚えておくべき方法は以下のとおりです。
#
左から数えて最初表す(キーボード上#
で$
左の使用に注意を払う#
時間は、シンボル削除*
フラグシンボルに(/或.
左に))を##
:左からの最後の日付を示します%
これは、(キーボードの右から第1の計数表す%
において$
右側の使用に注意を払う%
時、シンボル削除*
フラグシンボル上(/或.
右))を%%
:右からの最後の日付を示します单一
これは、シンボルである最小匹配
。两个
シンボルであります最大匹配
*
:のための内容を削除することを示し#
、および##
状況、それは位于
(この例では文字指定'/'和'.'
の)左边
、およびその内容を、左側のすべての文字を削除する;ため%
及び%%
状況、それは位于
(この例では文字を指定'/'和'.'
)された右边
発現指定された文字と、右側にその内容を削除します。ここで*
位置交換可能ではない、すなわち、ではない*
数の#
又は##
右、およびその逆。
5(&)、または(|)
5.1と&
&
:バックグラウンドで実行し、バックグラウンドでタスクを示し、redis-server &
&&
:以前のコマンドのような、唯一のコマンドの実行後、正常に実行しますecho '1' && echo '2'
5.2または|
|
:配管文字、上一条命令的输出
など下一条命令参数
||
:これは、コマンドの実行を表し失败
のみ、次のコマンドの後、のような:cat nofile || echo '1'