Я вполне уверен, не возможно сделать то, что Вы пытаетесь сделать. Большинство *отклоняет приложения, которые запрашивают пароль, считанный из TTY непосредственно, не stdin, таким образом, Вы не можете передать пароль по каналу в. Как другие упомянули, можно настроить SSH для не запроса пароль, как объяснено здесь .
После того, как я был downvoted без видимой причины, я пошел и действительно немного больше исследовал на эти expect
команда и обнаружил, что это имеет send_tty
команда, которая отправляет к/dev/tty вместо stdin, который мог бы на самом деле сделать то, что Вы хотите... Я ранее не знал об этой функции. Я все еще рекомендую поместить ключ на сервере, как бы то ни было.
Разница между частным, защищенным и общедоступным довольно очевидна:
В Delphi есть «ошибка», из-за которой видимость всех участников внутри одного модуля становится общедоступной. Ключевое слово strict исправляет это поведение, так что private фактически является частным даже в пределах одного модуля. Для хорошей инкапсуляции я бы рекомендовал всегда использовать ключевое слово strict.
Пример кода:
type
TFather = class
private
FPriv : integer;
strict private
FStrPriv : integer;
protected
FProt : integer;
strict protected
FStrProt : integer;
public
FPublic : integer;
end;
TSon = class(TFather)
public
procedure DoStuff;
end;
TUnrelated = class
public
procedure DoStuff;
end;
procedure TSon.DoStuff;
begin
FProt := 10; // Legal, as it should be. Accessible to descendants.
FPriv := 100; // Legal, even though private. This won't work from another unit!
FStrictPriv := 10; // <- Compiler Error, FStrictPrivFather is private to TFather
FPublic := 100; // Legal, naturally. Public members are accessible from everywhere.
end;
procedure TUnrelated.DoStuff;
var
F : TFather;
begin
F := TFather.Create;
try
F.FProt := 10; // Legal, but it shouldn't be!
F.FStrProt := 100; // <- Compiler error, the strict keyword has "made the protection work"
F.FPublic := 100; // Legal, naturally.
finally
F.Free;
end;
end;
strict private - видимый и доступный только изнутри этого класса.
private - видимый и доступный только изнутри этого класса И этой единицы класса.
protected - то же, что и private PLUS из дочерних классов
Вы можете узнать больше об инкапсуляции и об ее идее здесь: http://en.wikipedia.org/wiki/Encapsulation_%28computer_science%29#Encapsulation
Вы могли бы искали это повсюду (ключевое слово будет "модификаторы доступа")
В основном, защищенный означает, что члены будут видны в дочерних классах и во всем модуле.