<html>
<head>
<title>HTML Document</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>
<body>
<div id="hover-id">
Hello World
</div>
<script>
jQuery(document).ready(function($){
$(document).on('mouseover', '#hover-id', function(){
$(this).css('color','yellowgreen');
});
$(document).on('mouseout', '#hover-id', function(){
$(this).css('color','black');
});
});
</script>
</body>
</html>
Используйте конструкцию $( ... )
:
hash=$(genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5)
read hash < <(genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5)
В этом методе используется « замещение процесса [* g0] Bash]», чтобы не путать с « заменой команды ».
Вот несколько хороших ссылки:
handle_mystified_file
)? Это кажется невозможным, так как read
работает в дочернем процессе, который не может влиять на переменные в родительском процессе. Я пытаюсь разделить выход из процесса, используя tee
и «повторно подключиться». tee
-разделенные процессы позже, читая вывод одного в качестве аргумента в другом.
– user001
11 August 2014 в 01:02
echo "test" | read ROLE_X; echo $ROLE_X
ничего не печатает.
– Phương Nguyễn
30 January 2015 в 14:34
echo "test" | (read ROLE_X; echo $ROLE_X )
Подробнее об этом разветвлении на stackoverflow.com/a/13764018/117471
– Bruno Bronosky
7 April 2015 в 21:10
ls | (read $x; echo $x)
печатает только первую строку вывода ls. «read» не может читать более одной строки вывода.
– Phil Goetz
2 September 2015 в 16:19
<(…)
, это чистая удивительность. ОП должен был дать объяснение. В основном, он выполняет подпроцесс, но вместо того, чтобы связывать его, он возвращает дескриптор файла. Это позволяет использовать команды в тех местах, где вам нужны файлы. Например (как root) vimdiff /etc/sysconfig/iptables <(iptables-save)
, который заканчивает открытие имени файла, аналогичного /proc/23565/fd/63
. Да, vim
может принимать -
в качестве имени файла и читать с stdin
, но это всего лишь пример. Майские вещи не используют -
или гораздо более разборчивы с командным порядком, разрешенным <()
.
– Bruno Bronosky
13 June 2017 в 06:05
<(...)
будет поддерживаться, а back-ticks ar нет. <(...)
- это хорошо, но большую часть времени я использую его с diff
для сравнения вывода.
– ony
28 July 2017 в 15:29
Я предполагаю совместимый способ:
hash=`genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5`
, но я предпочитаю
hash="$(genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5)"
echo $hash
. Но он сохранит *
как есть, если вы сделаете hash=$(echo '*'0); echo "$hash"
– ony
30 June 2014 в 19:51
Вы можете сделать:
hash=$(genhash --use-ssl -s $IP -p 443 --url $URL)
или
hash=`genhash --use-ssl -s $IP -p 443 --url $URL`
Если вы хотите, чтобы весь канал был назначен переменной, вы можете использовать весь конвейер в вышеупомянутых назначениях.
Иногда я получал ошибку при использовании конструктора $(`code`)
.
Наконец, я получил некоторый подход к этому: https://stackoverflow.com/a/7902174/2480481
В основном, используя Tee, чтобы снова прочитать вывод и вставить его в переменную. Как вы видите нормальный выход, тогда прочитайте его с выхода.
нет? Я предполагаю, что ваша текущая задача genhash выведет только это, однострочный хеш так может работать для вас.
Im so neewbie и все еще ищет полный выход & amp; сохранить в 1 команду. Привет.
Если конвейер слишком сложный для переноса в $(...)
, подумайте о написании функции. Доступны любые локальные переменные, доступные во время определения.
function getHash {
genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5
}
hash=$(getHash)
http://www.gnu.org/software/bash/manual/bashref.html#Shell-Functions
TL; DR
Чтобы сохранить "abc"
в $foo
:
echo "abc" | read foo
Конечно, все эти другие ответы показывают, как не делать то, что OP спросил, но это действительно задирает всех нас, кто искал вопрос OP.
read
. # I would usually do this on one line, but for readability...
series | of | commands \
| \
(
read string;
mystic_command --opt "$string" /path/to/file
) \
| \
handle_mystified_file
series | of | commands
очень сложная серия команд с каналами. mystic_command
может принимать содержимое файла как stdin вместо пути к файлу, но не для аргумента --opt
, поэтому он должен входить как переменная. Команда выводит измененный контент и обычно перенаправляется в файл или передается по другой команде. (Например, sed
, awk
, perl
и т. Д.) read
принимает stdin и помещает его в переменную $string
read
и mystic_command
в «вспомогательную оболочку» с помощью скобок не требуется, но заставляет его течь как непрерывный канал, как если бы две команды находились в отдельном файле сценария. Всегда есть альтернатива, и в этом случае альтернатива является уродливой и нечитабельной по сравнению с моим примером выше.
# my example above as a oneliner
series | of | commands | (read string; mystic_command --opt "$string" /path/to/file) | handle_mystified_file
# ugly and unreadable alternative
mystic_command --opt "$(series | of | commands)" /path/to/file | handle_mystified_file
Мой путь полностью хронологический и логический. Альтернатива начинается с 4-й команды и выдает команды 1, 2 и 3 в подстановку команд.
handle_mystified_file
)? Это кажется невозможным, так как read
работает в дочернем процессе, который не может влиять на переменные в родительском процессе. Я пытаюсь разделить выход из процесса, используя tee
и «повторно подключиться». tee
-разделенные процессы позже, читая вывод одного в качестве аргумента в другом.
– user001
11 August 2014 в 01:02
echo "test" | read ROLE_X; echo $ROLE_X
ничего не печатает.
– Phương Nguyễn
30 January 2015 в 14:34
echo "test" | (read ROLE_X; echo $ROLE_X )
Подробнее об этом разветвлении на stackoverflow.com/a/13764018/117471
– Bruno Bronosky
7 April 2015 в 21:10
ls | (read $x; echo $x)
печатает только первую строку вывода ls. «read» не может читать более одной строки вывода.
– Phil Goetz
2 September 2015 в 16:19
result=$(( $your_command ) 2>&1)
– Katie S 16 September 2015 в 23:07$( ... )
, он использует новую подоболочку, поэтому результат команды может быть не таким, как в первичной оболочке – Andrey Izman 22 April 2017 в 03:10