Утверждение, что синтаксис псевдонима — alias aliasname='command'
, немного вводит в заблуждение, так как кажется, что одинарные кавычки являются частью синтаксиса. Они не. Часть после знака равенства похожа на присваивание переменной, поскольку это может быть любое слово оболочки слово , состоящее либо из простых символов (без кавычек ), либо из строки в кавычках, либо из их комбинации.
Все они действительны, и последние три эквивалентны:
alias ks=ls
alias ls='ls -l'
alias ls="ls -l"
alias ls=ls\ -l
Итак, все, что вам нужно сделать, это правильно экранировать кавычки, чтобы они были внутри значения псевдонима.
См., например,. этот ответ и другие ответы, например. эти вопросы для обсуждения на том:
Или используйте функцию вместо псевдонима, чтобы полностью избавиться от проблем с цитированием:
freemem() {
free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
}
kill
это корпус, построенный -в
$ type -a kill
kill is a shell builtin
kill is /usr/bin/kill
если вы хотите использовать --verbose
вам нужно вызвать kill
команду
$ /usr/bin/kill --verbose 4935
sending signal 15 to pid 4935
Я проверил в SUSE 12 (util -linux 2.33.2 )и Centos 8 (util -linux 2.32.1 ), verbose
допустимый вариант. Возможно, ваш дистрибутив скомпилировал kill
с другими флагами. В качестве обходного пути вы можете использовать -p
для ведения журнала, который только prints the pids
.
/usr/bin/kill --help
Usage:
kill [options] <pid>|<name>...
Forcibly terminate a process.
Options:
-a, --all do not restrict the name-to-pid conversion to processes
with the same uid as the present process
-s, --signal <signal> send this <signal> instead of SIGTERM
-q, --queue <value> use sigqueue(2), not kill(2), and pass <value> as data
-p, --pid print pids without signaling them
-l, --list[=<signal>] list signal names, or convert a signal number to a name
-L, --table list signal names and numbers
--verbose print pids that will be signaled
-h, --help display this help
-V, --version display version