Я хочу добавить эту команду iostat
к моему .bashrc
и создать для него псевдоним:
iostat -xk 2 $(findmnt -T ~ | awk 'END {print $2}')
Я добавляю это к моему .bashrc
:
alias ios='iostat -xk 2 $(findmnt -T ~ | awk 'END {print $2}')'
К сожалению, это не работает.
Если я запущу вышеприведенную команду iostat
в терминале, то это сработает, но когда я запущу ios
псевдоним, он больше не работает.
И да, я перезапускаю свою оболочку каждый раз.
Вложенные цитаты всегда доставляют проблемы.
Вы можете сделать это так:
echo 'Hello '\'~\'' world'
alias ios='iostat -xk 2 $(findmnt -T ~ | awk 'END {print $2}')'
, вы не можете использовать кавычки внутри кавычек. Чередование кавычек и двойных кавычек - самый простой метод. Итак, это работает:
$ alias ios="iostat -xk 2 $(findmnt -T ~ | awk 'END {print $2}')"
$
From edit:
Обратите внимание, что, хотя это работает в этом случае (потому что
~
пока не собирается переходить на другое блочное устройство), "soft" внешние кавычки вызывают оценку подстановки команд во время определения, а не динамически при вызове псевдонима
Если вам нужны одинарные кавычки, вы можете склеить их вместе, используя '"'" '
:
$ alias ios='iostat -xk 2 $(findmnt -T ~ | awk '"'"'END {print $2}'"'"')'
$
Вместо этого используйте функцию; цитирование проще:
ios () {
iostat -xk 2 $(findmnt -T ~ | awk 'END {print $2}')
}