Поведение является зависимым оболочки.
Вы объявили функцию не POSIX путь. Портативный синтаксис был бы
func()
{
...
Вы, вероятно, использовали bash
запускать Ваш скрипт. bash
не имеет никакого значения между нестандартным синтаксисом, который Вы использовали и стандартный. В обоих случаях, $0
обратитесь к названию сценария.
Если Вы использовали AT&T или реализацию общественного достояния ksh
который представил синтаксис, Вы используете и рассматриваете функции, объявленные с function
маркер по-другому, Вы наблюдали бы поведение, которое Вы ожидали:
$ cat go
function func
{
echo $0: $1 and $2
}
func1()
{
echo $0: $1 and $2
}
func ball boy
func1 ball boy
$ bash go
go: ball and boy
go: ball and boy
$ ksh go
func: ball and boy
go: ball and boy
Из коробки вы не можете написать на MBR диск, который является одним из FreeBSD Boots. После установки Sysctl Kern.geom.debugflags = 16
(или Kern.geom.debugflags = 0x10
, который все равно) Вам разрешено стрелять в ногу и писать в MBR Отказ
Это полезно для резервного копирования и восстановления MBR или Bootcode с использованием DD
:
Единственный способ записи в MBR без прикосновения к этому SYSCTL - загрузить ваш FreeBSD в однопользовательском режиме и работать с MBR, а root FileSystem устанавливается только для чтения. Если загрузить в однопользовательском режиме, а затем перемещать корневую файловую систему в RW-режиме, вам нужно будет установить этот Sysctl для записи в MBR. Если обычно загружается в многопользовательском режиме, а затем перейдите в однопользовательский режим (набрав . Без
без -R
или -H
аргументы), вы бы Еще нужно иметь дело с этим sysctl для записи в MBR.