位置パラメータを設定解除するにはどうすればよいですか?


11

どうすればよいですか。

set foo bar baz
unset # Something else here
echo $# # Should ouput 0

を実行するとset ""$#0ではなく1になります。

回答:


14

わかりました、これは単に愚かset --でした。


@ギレス:bashのmanページによると、set -引数を指定しないと、位置パラメータは変更されません。
camh '19

@camh同意しないでください。マニュアルでこれを確認します:set-このオプションの後に引数がない場合、定位置パラメーターは設定されていません。それ以外の場合、位置パラメータは、それらの一部が-で始まっていても、argsに設定されます。
kdubs

@kdubsは、manページを引用していますset --。私はset -(単一のハイフン)を使用しました。これは、「引数がない場合、位置パラメータは変更されないままです」と述べています。
camh

あなたが正しいです。私は彼らを混乱させました。私の画面はあなたを作りました-のように見えます-–
kdubs

4

以下を使用して、すべての定位置パラメーターを簡単に設定解除します。

shift $#

最初の3つの位置パラメータを削除するには:

shift 3

最初のN個の位置パラメータから「ポップ」シフトします。$#を使用して、位置パラメーターの総数を取得します。したがって、コマンドはすべての定位置パラメーターをポップします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.