Я загрузил пакет с открытым исходным кодом и make. Но ошибка возникает, когда я запускаю скрипт admin, который пытается начать. Я нашел, что это была некоторая проблема с path. Но есть еще проблема, которая меня смутила:
#! /bin/bash
# ionadmin - temporary wrapper script for .libs/ionadmin
# Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1
#
# The ionadmin program cannot be directly executed until all the libtool
# libraries that it depends on are installed.
#
# This wrapper script should never be moved out of the build directory.
# If it is, it will not operate correctly.
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
# Be Bourne compatible
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
# Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
fi
sed_quote_subst: какое значение у нее есть? из-за существующих '' некоторые мета в '' отключены. Но я не знаю, кто они. #!/bin/bash & amp; zsh emulate: первая строка объявляет, что этот скрипт запущен в bash. Итак, почему есть эмулирующий, который от zsh? alias -g '${1+"$@"}'='"$@"': Я просто ввел это в другой bash и получил ошибку: -g :invalid option, я смущен о различии zsh & amp; bash, и как они работают вместе. Не могли бы вы объяснить это мне, пожалуйста? Я новая рука для этого, поэтому этот вопрос может быть не таким «полезным» для вас. Но ваш ответ может помочь мне лучше понять этот мир.
В ваших вопросах не хватает информации, но я постараюсь ответить на это следующим образом:
sed regexp demystifys/\([`"$\\]\)/\\\1/g'
^ ^ ^----------------- with The character with a leading \
|
| | --- the characters `"$\
|
|-- replace
Так что " становится \" Я понятия не имею, zsh не мой чашку чая, когда вы используете скрипты. Проверьте, есть ли такие утверждения: if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
echo "Does the if statement run in my shell?";
else
echo "The else statement runs in my shell";
fi