$ 1変数を設定解除できますか?

$ 1変数を設定解除できますか?

$ 1変数を設定解除できますか?そうでなければ、どこにも説明が見つかりませんman

[root@centos2 ~]# set bon jour
[root@centos2 ~]# echo $1$2
bonjour
[root@centos2 ~]# unset $1
[root@centos2 ~]# echo $1$2
bonjour
[root@centos2 ~]#

編集する:

最後に、すべての位置引数を設定解除するためにman()で見つけたものは次のとおりですman set option double-dash(manは「unset」という単語を使用します!)。

このオプションの後に引数がない場合、位置引数は設定解除されます。

[root@centos2 ~]# echo $1

[root@centos2 ~]# set bon jour
[root@centos2 ~]# echo $1$2
bonjour
[root@centos2 ~]# set --
[root@centos2 ~]# echo $1$2

[root@centos2 ~]#

@Jeff Schallerの答えはこれを理解するのに役立ちました。

ベストアンサー1

位置パラメータを設定解除することはできませんが、そのパラメータ$2に移動して以前の$1値を効果的に削除することはできます$2

$ set -- bon jour
$ echo "$1$2"
bonjour

$ shift
$ echo "$1$2"  # $2 is now empty (i.e. "unset" or "not set")
jour

このshiftコマンドは、すべての位置パラメーターを1レベル下げます。コマンドライン解析ループ(これはいいえgetopt/)を使用すると、getopts通常、値を繰り返しチェックしながら、繰り返しごとに位置パラメータが移動されます$1。位置パラメータを設定解除したい場合はまれです。

ところで、unset変数を受け入れます名前、値ではなくunset $1変数がbon以前に設定されている場合は、実際に設定が解除されます。

おすすめ記事