Unix shell script выяснит, в каком каталоге находится файл скрипта?

И я цитирую:

«.NET Framework 4 обратно совместим с приложениями, которые были созданы с .NET Framework версий 1.1, 2.0, 3.0 и 3.5. Другими словами, приложения и компоненты, созданные с предыдущими версиями .NET Framework, будут работать с .NET Framework 4. «

Взято из Совместимость версий в .NET Framework

У вас есть правильная идея с файлом App.config, но вы действительно ограничиваете себя одной строкой. Могу ли я предложить более либеральное использование поддерживаемых строк Runtime?

Например:



  
    
    
    
    
    
    
    
    
    
     
    
  

Почему supportedRuntime version="v3.5" закомментирован? Помните, что эта конфигурация определяет, какие версии Common Language Runtime (CLR) совместимы с вашим приложением. Нет версии 3.0 или 3.5 для CLR. См. Версии и зависимости .NET Framework

440
задан user3378165 16 June 2016 в 08:31
поделиться

5 ответов

В Bash необходимо получить то, в чем Вы нуждаетесь как это:

#!/usr/bin/env bash

BASEDIR=$(dirname "$0")
echo "$BASEDIR"
517
ответ дан James Ko 16 June 2016 в 08:31
поделиться
  • 1
    Я просто использовал разметку как предусмотрено в вопросе. Если бы существуют больше тогда, Вы использовали бы соответствующие селекторы для этого – Danield 13 August 2013 в 10:51

Это должно добиться цели:

echo `pwd`/`dirname $0`

Это могло бы выглядеть ужасным в зависимости от того, как это было вызвано и cwd, но должно получить Вас, куда необходимо пойти (или можно настроить строку, если Вы заботитесь, как это смотрит).

-4
ответ дан kenorb 16 June 2016 в 08:31
поделиться

Принятие Вы используете удар

#!/bin/bash

current_dir=$(pwd)
script_dir=$(dirname $0)

echo $current_dir
echo $script_dir

Этот сценарий должен распечатать каталог, что Вы находитесь в, и затем каталог, в котором находится сценарий. Например, при вызове его от / со сценарием в /home/mez/, это производит

/
/home/mez

Помните, при присвоении переменных от вывода команды, перенесите команду в $( и ) - или Вы не получите желаемый вывод.

39
ответ дан Nathan Vērzemnieks 16 June 2016 в 08:31
поделиться
  • 1
    Here' s пример входа I' m использующий теперь... < входной идентификатор =" dtmCalendarDate" имя =" dtmCalendarDate" заполнитель =" mm/dd/yyyy" данные-meta =' {" type":" calendar" " datatype":" date" " defaultValue":" today" " validate": {" required": верный, " date": верный, " datemin":"-1year" " datemax":" +1year" }} '/>.. jQuery.validate + jQuery.metadata скала... – Tracker1 4 November 2010 в 19:27

Исходное сообщение содержит решение (игнорируйте ответы, они не добавляют ничего полезного). Интересная работа проделана упомянутой командой unix readlink с опцией -f . Работает, когда сценарий вызывается как по абсолютному, так и по относительному пути.

Для bash, sh, ksh:

#!/bin/bash 
# Absolute path to this script, e.g. /home/user/bin/foo.sh
SCRIPT=$(readlink -f "$0")
# Absolute path this script is in, thus /home/user/bin
SCRIPTPATH=$(dirname "$SCRIPT")
echo $SCRIPTPATH

Для tcsh, csh:

#!/bin/tcsh
# Absolute path to this script, e.g. /home/user/bin/foo.csh
set SCRIPT=`readlink -f "$0"`
# Absolute path this script is in, thus /home/user/bin
set SCRIPTPATH=`dirname "$SCRIPT"`
echo $SCRIPTPATH

См. Также: https: // stackoverflow. com / a / 246128/59087

374
ответ дан 22 November 2019 в 23:03
поделиться

Если вы используете bash ....

#!/bin/bash

pushd $(dirname "${0}") > /dev/null
basedir=$(pwd -L)
# Use "pwd -P" for the path without links. man bash for more info.
popd > /dev/null

echo "${basedir}"
31
ответ дан 22 November 2019 в 23:03
поделиться
Другие вопросы по тегам:

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