如何写别名以使用第一个参数或*如果参数为空?

彼德

我想为'ls'写一个别名命令,这样,如果我传入一个参数,则别名将使用它,但是如果我不这样做,则它将使用'*'。这是我今天的别名:

alias lsd='ls --color -lh | grep "^d" && ls --color -lh | grep -v "^d"

我的问题是,无论我为lsd命令键入什么内容,我总是会在响应中获取所有文件。因此,当我输入时lsd *.sh,我仍然会获得清单中的所有目录和文件。

我从另一个SuperUser帖子中复制了此别名,但还不太了解。

谢谢你的帮助。

更新:好的,现在我的.bashrc文件中定义了以下函数:

function lsd() {
  if [[ -z $1 ]] ; then
    command ls --color -lh | grep "^d" && ls --color -lh | grep -v "^d"
  else
    command ls --color -lh "$1" | grep "^d" && ls --color -lh "$1" | grep -v "^d"
  fi
}

当我使用just运行它时lsd,它可以按我的意愿工作。当我运行它时lsd *.wav,我仍然在输出中得到目录名称,然后看到“二进制文件x.wav与输出匹配”。我究竟做错了什么?

如果不清楚,我将尝试列出目录,然后列出文件,但仅列出那些与命令中第一个参数匹配的文件。因此,当我输入时lsd *.wav,我不希望看到目录,因为它们的名称不以.wav结尾。感谢您提供的所有帮助!:)

最后:没关系。我正在使用源.bashrc尝试更新bash,但这没有用,因此旧命令仍在运行。我关闭了ssh会话并重新登录,此新命令现在正在运行。谢谢大家!

疾病

别名不带参数。如果只想用短字符串替换长字符串,请使用别名。对于参数处理,请使用以下函数:

ls () {
    if [[ -z $1 ]] ; then
        command ls *
    else
        command ls "$@"
    fi
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果元素的第一个子代不是javascript中的标记,该如何写?

如果第一个输入为空,如何使用jQuery禁用输入类型日期

BASH:如果没有传递第一个参数,则如何传递默认参数

如何将参数传递给第一个参数为self的python函数?

创建一个通用函数,比较第一个参数是否为空,如果返回第二个,则返回默认值,否则返回第一个

表单中的第一个参数不能包含nil或在渲染时为空

Razor 页面:为什么第一个参数为空

如果第一个参数为false,php是否会评估or语句的第二个参数?

如果别名包含多个命令,是否可以将参数传递给第一个命令?

是否可以使用默认值的第一个JavaScript参数?

我可以使用成员函数作为EnumWindows的第一个参数吗

以Vararg为第一个参数的Kotlin方法

为每个参数选择第一个结果

如果第一个孩子为空,如何隐藏父div

如何删除函数的第一个参数?

如何获取函数的第一个参数的类型?

如何引用枚举的第一个参数?

使用第一个可选参数进行重载

webpack require。确保使用第一个参数

Shell函数仅使用第一个参数

$ @除了第一个参数

第一个参数索引

echo别名在env变量和第一个参数之间打印空格

包含可变参数包的第一个可转换类型的别名的结构

形式中的第一个参数不能包含nil或在rails 4中为空

如何写一个结构?

如何写一个“this” - 函数

如何在方法 LinearRegression().fit(X,Y) 的第一个参数“X”中使用 2 个参数?

如何使用嵌套的闭包作为List :: Util :: reduce的第一个参数?