Это могло бы представлять интерес для Вас http://www.codeplex.com/SharePointMVC
, Это - в основном библиотека для помощи рендерингу ASP.MVC в SharePoint masterpage.
Все еще первые годы, но Вы получаете идею.
Я хочу что-то похожее на
uname
,pwd
,whoami
. Просто простая утилита с простым выводом.
Таким образом, очевидно, вывод состоит в том, что инструмент, который я хочу, не существует, и нет простого кросс-платформенного способа сделать это.
Некоторые ответы здесь отлично работают в Linux.
Команда или путь к запущенной в данный момент оболочке хранится в переменной среды $ 0
. Чтобы увидеть его значение, используйте:
echo $0
Это выводит либо текущую запущенную оболочку , либо путь к вашей текущей запущенной оболочке, в зависимости от того, как она была вызвана. Может потребоваться некоторая обработка:
prompt:~$ echo $0
/bin/bash
prompt:~$ sh
sh-4.0$ echo $0
sh
sh-4.0$ exit
exit
prompt:~$ /bin/sh
sh-4.0$ echo $0
/bin/sh
sh-4.0$
Переменная среды $ SHELL
содержит предпочтительную оболочку пользователя, не обязательно текущую оболочку.
Если вы не укажете программу в строке shebang, я полагаю, что будет использоваться / bin / sh. К сожалению, я не верю, что существует хороший переносимый способ определить, что это за оболочка.
Если вы, например, используете Linux, вы можете узнать путь к исполняемому файлу через / proc
:
$ readlink "/proc/$$/exe"
/bin/dash
, и получить имя исполняемого файла легко с помощью ps $$
.
Но это не поможет вам ни с типом оболочки (кроме таблицы поиска известных оболочек), ни с версией ( AFAICT, нет даже способа получить версию с тире)
Попробуйте ($$ - это переменная оболочки, для которой задан идентификатор процесса оболочки):
ps -ef | grep $$
или попробуйте это (/ proc / self также является идентификатором процесса оболочки):
ps -ef | grep /proc/self
Что касается "-bash" - тире означает это оболочка входа в систему. Снова введите bash, и теперь вы увидите, что оболочка просто "bash" (без тире)
Вместо того, чтобы пытаться определить, какая оболочка используется в настоящее время, обычно более целесообразно просто повторно выполнить запуск в качестве желаемой оболочки. Это может быть не чем иным, как историческим обходным путем того факта, что не существует надежного переносимого способа определения оболочки, которую вы в настоящее время используете. Лучше всего написать сценарий для работы в максимально возможном количестве оболочек, чтобы это не было проблемой. (например, переносимость имеет значение, независимо от того, сколько людей хотят утверждать, что «bash везде»)