shellスクリプト学習(五)その他
2008 ワード
一、getopts
①概要 Cはgetopt_がありますlong関数はコマンドラインパラメータを解析するために使用され、shellではgetoptsが使用されます. 一般フォーマット:getopts options variable getoptsは一般的にループで実行され、ループを実行するたびに、getoptsは次のコマンドラインパラメータをチェックし、合法かどうかを判断します.すなわち、パラメータが-で始まるかどうかを確認し、optionsに含まれるアルファベットを後にします.もしそうであれば、一致するオプションアルファベットを指定した変数variableに存在させ、終了状態0を返します.もし-後ろのアルファベットがoptionsに含まれていない場合はvariableに1つ保存しますか?終了ステータス0を返します.コマンドラインにパラメータがない場合、または次のパラメータが-で始まる場合は、0ではない終了状態を返します.
②その他: getoptsでは、-msなどのオプションをスタックできます. パラメータを持つ場合は、対応するオプションの後に:を付けます.この場合、オプションとパラメータの間に少なくとも1つの空白文字が区切られ、このようなオプションはスタックできません. パラメータが必要なオプションの後にパラメータが見つからない場合は、指定された変数に格納されますか?標準エラーにエラーメッセージを書き込みます.それ以外の場合、実際のパラメータを特殊変数:OPTARG に書き込むもう一つの特殊変数:OPTINDは、次の処理するパラメータインデックスを反映し、初期値は1であり、getoptsが実行されるたびに更新される.
二、source source filepathこのコマンドは、現在のshellにパスがfilepathのshellファイルを読み込ませ、ファイル内のすべての文を順次実行させます.通常、変更したばかりの初期化ファイルを再実行し、ログアウトして再ログインする必要がなく、すぐに有効にします.たとえば、/etc/profileファイルを変更し、再ログインせずにすぐに有効にしたい場合は、source/etc/profileなどのsourceコマンドを使用します. source filenameは、スクリプト内の文を簡単に読み取るだけで、現在のshellで順次実行され、新しいサブshellは確立されていません.スクリプト内のすべての新しい変数、変更変数の文は、現在のshellに保存されます.
三、basenameとdirname basenameはディレクトリを除いた残りの名前 です dirnameは取り出しディレクトリ である.
四、export Linux exportコマンドは、環境変数を設定または表示するために使用されます.shellでプログラムを実行すると、shellは環境変数のセットを提供します.exportは、後続の実行プログラムで使用するために環境変数を追加、変更または削除できます.exportの効力は、このログイン操作にのみ及ぶ. 使用:export[-fnp][変数名]=[変数設定値]-fは[変数名]で関数名を表します.-n指定した変数を削除します.変数は実際には削除されませんが、後続の命令の実行環境には出力されません.-pすべてのshell付与プログラムの環境変数をリストします.
五、shell-initエラー shellスクリプトで、前にcdでディレクトリに入り、後にそのディレクトリを終了しない前に削除するとエラーが発生します. 一般的なエラープロンプトは、shell-init:error retrieving current directory:getcwd です.
①概要
#!/bin/bash
while getopts "a:" opt; do
case $opt in
a)
echo "this is -a the arg is ! $OPTARG"
;;
\?)
echo "Invalid option: -$OPTARG"
;;
esac
done
②その他:
二、source
三、basenameとdirname
四、export
五、shell-initエラー