我想将此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
别名时它不再起作用。
是的,我每次都会重新启动我的shell。
答案1
使用函数来代替;引用更简单:
ios () {
iostat -xk 2 $(findmnt -T ~ | awk 'END {print $2}')
}
答案2
alias ios='iostat -xk 2 $(findmnt -T ~ | awk 'END {print $2}')'
您不能在引号内使用引号。在引号和双引号之间交替使用是最简单的方法。因此,这样做有效:
$ alias ios="iostat -xk 2 $(findmnt -T ~ | awk 'END {print $2}')"
$
来自编辑:
请注意,尽管它在这种情况下有效(因为
~
在此期间不会移动到不同的块设备),但“软”外引号会导致命令替换在定义时进行评估,而不是在别名调用时动态进行评估
如果需要单引号,可以使用以下方法将它们粘合在一起'"'"'
:
$ alias ios='iostat -xk 2 $(findmnt -T ~ | awk '"'"'END {print $2}'"'"')'
$
答案3
嵌套引号总是会带来麻烦。
你可以这样做:
echo 'Hello '\'~\'' world'