Как установить нуль параметра (0$) при выполнении сценария?

Как состояния http://en.wikipedia.org/wiki/List_of_FTP_server_return_codes,

550 Требуемых мер, не принятых. Недоступный файл (например, файл, не найденный, никакой доступ).

У Вас или нет полномочий файловой системы получить доступ к этим каталогам или серверу, настраивается таким образом, что он рассматривает /home как корень файловой системы.

Вы, возможно, конечно, погуглили немного и нашли что-то как http://www.linuxquestions.org/questions/linux-server-73/550-failed-to-change-directory-835003/

4
23.07.2014, 15:01
2 ответа

В Bash больше или равно 5 вы можете изменить $0следующим образом:

$ cat bar.sh
#!/bin/bash
echo $0
BASH_ARGV0=lol
echo $0
$./bar.sh 
./bar.sh
lol

ZSH даже поддерживает прямое назначение0:

$ cat foo.zsh
#!/bin/zsh
echo $0
0=lol
echo $0
$./foo.zsh 
./foo.zsh
lol
4
27.01.2020, 20:52

Помимо того, что уже упомянул Стефан, я могу придумать только один другой способ сделать это - вызвать процесс sh , который означает, что ваша функция может быть сценарием. Но если вам все еще интересно:

fn() { sh -c "$(cat)" arg0 "$@" ; } <<\FNDEF
    echo "My argv0 is $0 and my positionals are..."
    printf %s\\n "$@"
#END
FNDEF
fn arg1 arg2 arg3 
###OUTPUT###
My argv0 is arg0 and my positionals are...
arg1
arg2
arg3

Это не очень полезно, хотя, я не думаю.

4
27.01.2020, 20:52

Теги

Похожие вопросы