Из man bash
:
set [+ abefhkmnptuvxBCEHPT] [+ o option-name] [arg ...]
-e
Выйти немедленно, если конвейер (который может состоять из одной простой команды), команда подголовника, заключенная в круглые скобки, или одна из команд, выполняемых как часть списка команд, заключенного в фигурные скобки (см. SHELL GRAMMAR выше), выходит с -zero статус. Оболочка не выходит, если неудавшаяся команда является частью списка команд сразу после некоторого времени или до тех пор, пока ключевое слово, часть теста, следующего за зарезервированными словами if или elif, не будет частью любой команды, выполненной в & amp; & amp; & amp; или || список, за исключением команды, следующей за окончательным & amp; & amp; или ||, любая команда в конвейере, но последняя, или если возвращаемое значение команды инвертируется с помощью!. Ловушка ERR, если установлена, выполняется до выхода оболочки. Этот параметр применим к среде оболочки и каждой среде субголома отдельно (см. Выше ОБЩИЕ УСЛОВИЯ ОКРУЖАЮЩЕЙ СРЕДЫ) и может вызывать подоболочки для выхода до выполнения всех команд в подоболочке.
blockquote>Итак, когда
false
, он выходит из подоболочки.См. несколько примеров:
# when `false`, exit. Hence, no `echo ho` $ ( set -e; echo hi; false; echo ho ) ; echo $? hi 1 # when `false`, exit. Hence, no `echo hu` $ ( set -e; echo hi; true; echo ho; false; echo hu ) ; echo $? hi ho 1
Или, в синтаксисе String.Format
(используемом, например, в Console.WriteLine
)
string s = String.Format("{0:00}", yourInt);
Выполнит ли это то, что вы хотите?
for (int i = -20; i < 100; i++)
{
string s = i.ToString();
while (s.Length < 2) s = "0" + s;
Console.WriteLine(s);
}
Я понимаю, что описанный здесь метод немного грубой силы. Но если бы это сработало, вы могли бы оптимизировать его с помощью повторно используемого массива символов вместо добавления строки.
Я не понимаю, почему . ToString("00")
не сработал. Этот тест удался...
[TestMethod]
public void RightPadIntegersWithZero()
{
var values = new[] { -100, -20, -1, 0, 1, 5, 10, 100, 567 };
var expecteds = new[] { "-100", "-20", "-01", "00", "01", "05", "10", "100", "567" };
for (var i = 0; i < values.Length; i++)
{
var value = values[i];
var expected = expecteds[i];
var result = value.ToString("00");
Assert.AreEqual(expected, result);
}
}
Вы, должно быть, делаете что-то отличное от того, что описывает ваш вопрос
Ваш вопрос немного двусмысленный: отображать где?
В любом случае, вы, вероятно, захотите взглянуть на String.Format.