setkabuk seçeneklerini ve konum parametrelerini ayarlamak ve ayarlamak için kullanılan bir kabuk yerleşikidir .
Bağımsız değişkenler olmadan settüm kabuk değişkenlerini (geçerli ortamdaki hem ortam değişkenleri hem de değişkenler) geçerli yerel ayara göre yazdırır .
Ayrıca bash belgelerini de okuyabilirsiniz .
Birkaç uyarı var.
set "$var"vardeğerine değer atayacaktır $1. Eğer $varbaşlangıç ile -ya da +, daha sonra $variçerik kabuk seçeneklerinin dizileri gibi muamele edilmiştir. Eğer $vargeçersiz seçenekleri içerir, en POSIX kabukları hatayı yazdırır. yashve zshiçinde sh, kshöykünme yalnızca hatayı yazdırmakla kalmaz, aynı zamanda geçerli seçenekleri de ayarlar. İken yashdurdurma ilk geçersiz seçeneği ayar seçenekleri, zshhepsini atar. İçinde yash:
var=-fxd; set "$var"
fve xşu $-süre içinde sunulacak :
var=fdx; set "$var"
sadece fmevcut $-. Her iki durumda da fve içinde ve öykünme ile xsunulacak .$-zshshksh
Sizi bu durumdan korumak için --, -veya ile başlasa bile konum parametresini ayarlamak için ilk argüman olarak geçebilirsiniz +:
var=-fdx; set -- "$var"
atayacaktır $variçin $1içeriği ne olursa olsun,.
set -- başka argüman olmadan tüm konumsal parametreleri ayarlayamazsınız.
İlk argüman ise -, davranış belirtilmez. Bilinen tüm POSIX kabukları ayarlanmayacak xve vseçenekler (hariç posh) olacak ve -konumsal parametrelere sonra herhangi bir şey atayacaktır :
set -xv - -f
atayacaktır -fiçin $1. set -ayrıca konum parametrelerini de ayarlamadı. Schily osh da böyle davranıyor. Hatıra sh unset vve xseçenekleri yok.
İlk konumsal parametre olarak yashdavranan tek POSIX kabuk istisnası -:
$ yash -c 'set -xv - -f; printf "%s\n" "$@"; printf "%s\n" "$-"'
+ printf %s\n - -f
-
-f
+ printf %s\n cvx
cvx
Schily sh- , argümanlarda varsa hiçbir şey yapmaz :
$ schily-sh -c 'set -v - -f; printf "%s\n" "$@"; printf "%s\n" "$-"'
<blank line>
s
$ schily-sh -c 'set -v -- -f; printf "%s\n" "$@"; printf "%s\n" "$-"'
-f
vs