Странность Rocky Linux [закрыто]Linux

Ответить
Anonymous
 Странность Rocky Linux [закрыто]

Сообщение Anonymous »

Все. Я был не уверен, какой сайт должен быть задан этот вопрос: переполнение стека, неисправность сервера, суперпользователь или Unix и Linux. Если переполнение стека-это не самое лучшее место, пожалуйста, дайте мне знать, и я буду переосмыслить на соответствующий сайт. (Слишком много задач и действий, которые нужно выполнять в рамках Ansible исключительно.) В моем скрипте используется строка #!/USR/bin/bin/env/env , чтобы инициализировать исполнителя оболочки в качестве первой строки.ZIPCHK="$( ${UNZIP} -t ${FILE} 2>&1 )"

Я определяю Unzip в начале моего скрипта с помощью:
export UNZIP="$(which unzip)"

При определении этого пути, во время выполнения скрипта я получаю следующий вывод с Set -x включен:
++ /usr/bin/unzip -tqq d1_helloworld_1.0.zip
+ ZIPCHK='Archive: /usr/bin/unzip
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
note: /usr/bin/unzip may be a plain executable, not an archive
unzip: cannot find zipfile directory in one of /usr/bin/unzip or
/usr/bin/unzip.zip, and cannot find /usr/bin/unzip.ZIP, period.'

Среда ОС вызывает выполнение команды Unzip , чтобы попытаться распаковать , вместо того, чтобы архив Zip был передан в качестве аргумента. Да, переменная файла определяется до выполнения команды. Но что? /> Если я объявляю < /code> переменную в начале сценария без значения (declare UNZIP) и оставьте его пустым, пока я не достигну Zipchk = ... , используя оператор расширения переменной: = для установки значения/usr/bin/unzip , он успешен во время выполнения скрипта.declare UNZIP=”/usr/bin/unzip”) он успешен во время выполнения скрипта.declare -x UNZIP=”/usr/bin/unzip”), эффективно так же, как использование export , он не удается.which ()
{
( alias;
eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
< /code>
BASH_FUNC_which%%=() { ( alias;
eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
< /code>
If I run declare -f, в конце вывода появляется эта строка:
which ()
{
( alias;
eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
declare -fx which
< /code>
If I run which which, я получаю:
$ which which
which ()
{
( alias;
eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
< /code>
This is vastly different from running which против других команд:
$ which zip
/usr/bin/zip
< /code>
That may have nothing to do with my problem with running the unzip Команда через задание переменной в моем скрипте, но на данный момент я сталкиваюсь с любыми соломинками, которые я могу найти. Информация: < /p>
$ cat /etc/os-release
NAME="Rocky Linux"
VERSION="9.6 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.6"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.6 (Blue Onyx)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:9::baseos"
HOME_URL="https://rockylinux.org/"
VENDOR_NAME="RESF"
VENDOR_URL="https://resf.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2032-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"
ROCKY_SUPPORT_PRODUCT_VERSION="9.6"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.6"

$ /bin/bash --version
GNU bash, version 5.1.8(1)-release (x86_64-redhat-linux-gnu)


Подробнее здесь: https://stackoverflow.com/questions/797 ... -weirdness
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»