A build script must run once with LANG set to C so that it produces untranslated messages, but the interactive shell's own locale must stay as it is. Which invocation does that?

LPIC-1 Exam 102-500, objective 105. Shells and shell scripting medium

Machine-checked — no person has signed for it. This question was read against the source cited below by an automated pass, which found no contradiction. That is a weaker claim than it sounds: the same kind of process wrote the question, so it can confirm its own mistake.

Treat it as a good draft rather than as settled fact, and read the source below before you rely on it. It is not used in mock exams here — only questions a person has signed for are.

How these questions are written — where each question comes from, what the verification ledger records, and what happens when one is found wrong.

The options

Correct LANG=C ./build.sh

Correct. An assignment written in front of a command applies to the environment of that command only. The shell's own LANG is unchanged once the command finishes.

Not correct export LANG=C; ./build.sh

Wrong for the requirement. This changes LANG for the rest of the session and for every later command, so the interactive shell's locale does not stay as it was.

Not correct ./build.sh LANG=C

Wrong. Written after the command name, LANG=C is an ordinary argument handed to the script as $1. It never becomes part of the script's environment, so the script still runs under the shell's own locale.

Not correct set LANG=C ./build.sh

Wrong. set with arguments replaces the positional parameters of the current shell; it neither sets a variable named LANG nor runs the script.

Why

A variable assignment placed before a command name in a simple command is exported into that command's environment for the duration of that command alone. It is the standard way to make a one-shot environment change without touching the shell, and it composes with env, so env LANG=C ./build.sh has the same effect. Compare export, which marks the variable for inheritance by every subsequent child process of the shell.

Where this comes from

Cited
manual page bash(1)

Practise this

Reading one question is not practice. The trainer will draw a short set from objective 105 and space the ones you get wrong.

Practise LPIC-1 Exam 102-500

More questions on this objective

All questions on Shells and shell scripting

Practise LPIC-1 Exam 102-500