From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,FUZZY_XPILL autolearn=no autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763675070; x=1764279870; darn=lists.altlinux.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=dBZY31QTdeHorwocik2s9R3zuXBANEpjpCqw48BAxwk=; b=TauTFpQhtTlIP8z/SND8waqlNv62IYTwlFTUHpkMEb2bOjSVBKUq2jGlYl9I9BLxlP aFComXuiBwguBfvpV+QYwJBMZuw/1HM3+45tdZymHtnJGUZ5alsUJt0d19XPMXWLHbtl meImjUZWJ1KME/0/yvgPnoCG9LeCJubbRQmJug0er03BgFGvujyaigau4cg23sqxpvrc pi1Z5KFIIqRTj/ssFMYicNayjVyzLxCOKSfMa4Lwag3aUnW8x5zACUMBpsE1EZTkgsgK wFX3LZPKSjpfezVs9+LoMUJGr+ucl4FPW0VMJXSwg9x7jQ7ac33w8DXXpNWHnUbcYss3 Sc0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763675070; x=1764279870; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=dBZY31QTdeHorwocik2s9R3zuXBANEpjpCqw48BAxwk=; b=SB7ntMWbWi+Hxazj5E3Jn623VwGTcFsCLEAAtvFnT0OZZZUF9se/VnR01YDsa75f6l 5Ne3NYTCAb9R29ziiOm6ldZhjoxYGQE8MgZgmAChNRiNbPHaVJUbRNazNSMFGBPbNO6F i+dNOJBIkF2cH2lYHw8U96mQcsP1ektqFIoFhphP1iiWmvE2oufGVozEz2FYs1sxYQTe gsDl/jMnZi98sr/DgY2uJwnzznZeUPInMyNu2CIAXqWE2DFDK8s4dU+WPdbbRlBCdfw6 HSaEtNo719c5fe3Pup/Pk/kRC2V1JR5n72e33HXXvHl2iJtDIOdeetO2D571Tc/Uym1c YoNw== X-Gm-Message-State: AOJu0YxDSP1J8P/PUSHSbinyaaWDYgkadfLN5c+nz9xTFEp14Y05qgX7 0eKrux1bdSfGy2vta8POQphtCd3+1LC3/Iadm1biPzLfRfzDUMamTTyRYawuQQ== X-Gm-Gg: ASbGncswEF9c92isyK/HtgHxCGxGKbIOUs+vucyOPqKVbHo3Jteh1ErMk2wjlQACK+K 15iEhrrbjPcOK0uy27kHvyTOJAnm3R7aV9hG/D7y+GsMm0vs/pEbWZ6mJPHkHQ62amop3gLuNPE oBuWcrMeNANlNdlQaWhGP28+bD6IVnOrZTPSOAvi0L/+EjL2v10wfT8FtXTGoWfqK70R5ae6XnA 2tfSKeYxb79s3P6Fo8oDoPWhmE91TeDHbFF7/uiDDQIVke8z8t2pvUpAsKGyWNBwTo2OFWBpzBT xKa41BFOgU9iOpVurphSdCN7+JjH7U1fWMNIGZCP3Fw/YiUwl3Ueze1XqvciAZPWnnzulNB5qxc B6HIDPzXz3cjsx4xqmeaS4K5j4N4LjOUJHezKI6QLT5oPuWaMdlzn0HoDfhWIP7us+ecrul7cUn pcLSuafu8MyOVmPaNltvREy/5b0uNLIaK58l5Ao1x3GYeIwVuHT43tbOTlbw== X-Google-Smtp-Source: AGHT+IG3TNmVKC1VSN754m88GFI72+RP2AUlrXFj4HFJQM3DG8hVcPicrLnlULHIX0aFy7DQqnKfxw== X-Received: by 2002:a05:651c:4418:20b0:378:e097:e16e with SMTP id 38308e7fff4ca-37cc67a6f91mr13636881fa.36.1763675070094; Thu, 20 Nov 2025 13:44:30 -0800 (PST) Message-ID: <413374e7-ec47-4523-b6f9-a342631efe43@gmail.com> Date: Fri, 21 Nov 2025 00:44:27 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: devel-newbies@lists.altlinux.org References: Content-Language: ru, en-US From: Leonid Krivoshein In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [newbies] Bash and POSIX - local variables X-BeenThere: devel-newbies@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: "devel@ where you _can_ ask" List-Id: "devel@ where you _can_ ask" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2025 21:44:32 -0000 Archived-At: List-Archive: Добрый день! On 11/20/25 18:28, Alexander Lubyagin wrote: > > Вот такой скрипт: > x=42 > echo $x > foo() { >  local x=43 >  echo $x > } > foo > echo $x > > Интерпретатор Bash: > $ /bin/bash4 script > 42 > 43 > 42 > > Интерпретатор Bash в режиме POSIX: > $ /bin/bash4 --posix script > 42 > 43 > 42 > > То есть, в POSIX-режиме тоже поддерживаются локальные для функций > переменные. > > Как же писать скрипт, после shebang в котором указан /bin/sh? > > Полагаться ли на поддержку локальных переменных? > Зависит от целеполагания. Поддержка local появилась давно. Во многих системах /bin/sh является симлинком на что-то, что совершенно не обязано быть POSIX-compliant shell. Например, даже в старых альтах это был bash3 с поддержкой local. Проверяйте ash, используйте subshell ( ... ), если так важна переносимость. По-моему, все, кто за неё радел, уже давно забили на это дело и пользуются всеми прелестями башизмов. :-) Куда важнее для правильного скриптования использовать shellcheck. -- WBR, Leonid Krivoshein.