Пожалуйста, попробуйте прочитать некоторую документацию, прежде чем размещать здесь. То, что вы просите, легко найти с помощью 5-минутного поиска в Google . Вы можете прочитать нашу страницу справки на , как задавать вопросы , чтобы лучше понять, как работает этот сайт.
В любом случае, вы можете передавать переменные в качестве аргументов с помощью параметра -v
:
awk -F'[]]|[[]' -v var1="2014-04-07 23:00" -v var2="2014-04-08 02:00:01" \
'$0 ~ /^\[/ && $2 >= var1 { p=1 }
$0 ~ /^\[/ && $2 >= var2 { p=0 }
p { print $0 }' log
Или вы можете установить переменные в блоке BEGIN
:
awk -F'[]]|[[]' \
'BEGIN{var1="2014-04-07 23:00"; var2="2014-04-08 02:00:01"}
$0 ~ /^\[/ && $2 >= var1 { p=1 }
$0 ~ /^\[/ && $2 >= var2 { p=0 }
p { print $0 }' log
В bash
это должно быть:
alias s2st='ps -A | grep -E "a|b"'
(alias s2st="ps -A | grep -E "a|b""
не будет не работать в bash
, так как второй "
закроет первый "
, поэтому второй |
не будет цитироваться ).
Вcsh
alias s2st 'ps -A | grep -E "a|b"'
Сильными кавычками в bash
и csh
являются '...'
. Они менее сильны в csh
, хотя там, где !
и новая строка (и обратная косая черта перед )по-прежнему являются особыми.
В TCL сильные кавычки — это {...}
с дополнительным преимуществом, состоящим в том, что {
и }
могут встречаться внутри них, если они совпадают.
Благодаря Стефану Шазеласу я нашел свою проблему:
Мой псевдоним хранится в сценарии tcl, поэтому мне нужен правильный синтаксис tcl,:
set-alias s2st {ps -A | grep -E "a|b"}
В Tcl я бы написал
proc psgrep {pattern} {
return [join [lsearch -regexp -inline -all [split [exec ps -A] \n] $pattern] \n]
}
set output [psgrep {a|b}]