Странное поведение в $ (dirname 'readlink-f 0$')

Самый легкий путь состоит в том, чтобы установить разделителя полей на ":"

awk -F":" '$2~/user/{print $1}' /etc/userdomains

And if you want to check for exact username, 

awk -F"[ \t]*:[ \t]*" '$2=="user"{print $1}' /etc/userdomains
11
01.02.2012, 15:38
2 ответа

Это должно быть той же ошибкой как в пользовательской оболочке входа в систему, потому что во входе в систему окружают 0 параметр оболочки, расширяясь до названия текущего процесса, дает -bash, минус указание на оболочку входа в систему. Вы теперь видите где -b ошибка прибывает из.

Попробуйте вместо этого

echo "$( dirname "$(readlink -f -- "$0")" )"
15
27.01.2020, 19:57

Если Вы действительно хотите имя каталога сценария оболочки, который выполняется:

script_dir="$(dirname -- "$(readlink -f -- "$0")")"

Да, это - немного cludgy, но это безопасно.

Если Вы хотите текущую оболочку, можно попробовать предложение @MichaelMrozek использования $SHELL.

3
27.01.2020, 19:57

Теги

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