シェルスクリプトとは何か、彼はそれを必要としなければなりません
シェルスクリプトは、彼の命令の一つ以上を含むテキストファイルです。システム管理者として、私たちはしばしば、我々が日常のタスクを完了するために、テキストファイルにこれらのコマンドを追加することができ、タスクを完了するために1つ以上のコマンドを使用する必要があります。
ユーザのログインシェルを変更する方法を、デフォルトのログインシェルは何ですか
Linuxシステムでのデフォルトのログインシェルは、「/ binに/ bashの」で、ユーザを作成し、デフォルトで割り当てられます。使用CHSH次のようにデフォルトのシェルを変更するには、コマンドを、例を示します。
chsh 用户名 -s <新shell>
chsh linux -s /bin/sh
あなたは、シェルスクリプトでこれらの変数を使用することができます
- システム定義変数
- ユーザー定義変数
システム変数は、システム自体によって作成され、これらの変数は「で、通常は大文字ですSET」ビュー。
ユーザー定義ユーザー定義変数とシステムが生成したが、使用することができますecho $ <変数名>ビューを。
どのように標準出力とエラー出力が同時に同じファイルにリダイレクト
- この方法の一つ
2>&1
ls /usr/share/doc > out.txt 2>&1
- 方法二
&>
ls /usr/share/doc &> out.txt
どのようにシェルスクリプトのネストされた場合
構文は次のとおりです。
if [条件]
then
命令1
......
else if [条件]
then
命令1
......
else
命令1
......
fi
fi
シェルスクリプト「$?」マークの使用は何ですか
あなたが実行コマンドが正常に実行される前に「$?」の条件は前のコマンドの成功かどうかをチェックすることができるかどうかをチェックしたい場合は、スクリプトを書くには。
root@localhost:~# ls /usr/bin/shar
/usr/bin/shar
root@localhost:~# echo $?
0
終了状態が0であれば、前のコマンドが正常に完了したことを示します
root@localhost:~# ls /usr/bin/share
ls: cannot access /usr/bin/share: No such file or directory
root@localhost:~# echo $?
2
終了状態がゼロでない場合は、前のコマンドが失敗したことを示します
シェルスクリプトに2つの数の大きさを比較
#!/bin/bash
x=10
y=20
if [$x -gt $y]
then
echo "x is greater than y"
else
echo "y is greater than x"
fi
シェルスクリプトの役割は、休憩中にコマンド
ブレークは、単純な目的は、ループの実行を終了しているコマンド。私たちは、しながらループするまでコマンドを使用してループから抜け出すことができます。
シェルスクリプトコマンドが有効に存続します
コマンドは、現在のループ反復のうち、全体ではなく、サイクルよりも彼のブレークコマンド、異なる続けます。continueコマンドは、エラーとして、有用であることがしばしばあるが、我々はまだサイクルタイムを続行します
ケースの使用でシェルスクリプト
case 变量 in
值1)
命令
......
值2)
命令
......
;;
esac
シェルスクリプトの使用中
while (条件)
do
命令
......
done
スクリプトを実行可能にする方法
chmod a+x myscript.sh
サイクルの使用のためのシェルスクリプト
for 变量名 in 循环列表(值)
do
命令
......
done
シェルスクリプトをデバッグする方法
'-x'を使用SH -X-myscript.shを。もう一つの方法は、 '-nv'パラメータであるSHの-nvのmyscropt.sh。
文字列を比較するためにどのようにシェルスクリプト
testコマンドは、文字の記録を比較するために使用することができます。コマンド文字列内の各文字を比較することによって、テストを比較します。
どのような特定の変数Bourneシェル(bashの)持っています
組み込み変数 | 意味 |
---|---|
$ 0 | コマンドラインスクリプトの名前 |
$ 1 | 最初のコマンドライン引数 |
$ 2 | 2番目のコマンドライン引数 |
$ 3 | 3番目のコマンドライン引数 |
$ 4 | 4番目のコマンドライン引数 |
... | ... |
$ 9 | 第九のコマンドライン引数 |
$# | コマンドライン引数の数 |
$ * | スペースで区切ってすべてのコマンドラインパラメータ、 |
シェルスクリプトでファイルをテストする方法
テスト | 使い方 |
---|---|
-dファイル名 | ファイルが存在し、ディレクトリである場合、trueを返します |
-eファイル名 | ファイルが存在する場合、トゥーレを返します |
-fファイル名 | ファイルが存在し、通常のファイルで、trueを返す場合 |
-rファイル名 | ファイルが存在し、読み取ることができる場合、trueを返します |
-sファイル名 | ファイルが存在し、空でない場合、trueを返します |
-xファイル名 | ファイルが存在し、実行された場合は、trueを返します |
-wファイル名 | ファイルが存在していると書いた場合、trueを返します |
シェルスクリプトのコメントの書き方
各行の先頭には、例えば、「#」で始まります。
#!/bin/bash
# This is a command
echo “I am logged in as $USER”
端末から入力を取得するシェルスクリプトを作成する方法
(キーパッドを使用して)端末からデータを読み出すためのコマンドを読み取ります。ユーザー入力を取得し、与えられた自分の変数を置くためにコマンドをお読みください。例としては、次のとおりです:
# vi /tmp/test.sh
#!/bin/bash
echo ‘Please enter your name’
read name
echo “My Name is $name”
# ./test.sh
Please enter your name
Linuxceshi
My Name is Linuxceshi
あなたは、変数をキャンセルまたは変数の割り当てを解除するにはどうすればよいです
unset <变量名>
算術演算を実行する方法
- コマンド式exprを使用します
expr 5 + 2
- たとえば、ドル記号や括弧($ [式])の場合:
test=$[16 + 4] ; test=$[16 + 4]
DO-while文の基本的な形式
do
{
命令
} while (条件)
シェルスクリプトでどのように定義関数
$ diskusage () { df -h ; }
译注:下面是我给的shell函数语法,原文没有
[ function ] 函数名 [()]
{
命令;
[return int;]
}