Какой символ для избежания этого будет работать в ~/.bashrc

Я хочу добавить эту команду 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 псевдоним, он больше не работает.

И да, я перезапускаю свою оболочку каждый раз.

3
задан 25 September 2020 в 10:45

3 ответа

Вложенные цитаты всегда доставляют проблемы.

Вы можете сделать это так:

echo 'Hello '\'~\'' world'
0
ответ дан 4 January 2021 в 08:21
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}'"'"')'
$
5
ответ дан 4 January 2021 в 08:21

Вместо этого используйте функцию; цитирование проще:

ios () {
  iostat -xk 2 $(findmnt -T ~ | awk 'END {print $2}')
}
10
ответ дан 4 January 2021 в 08:21

Другие вопросы по тегам:

Похожие вопросы: