首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash Alias帮助

Bash Alias帮助
EN

Stack Overflow用户
提问于 2011-03-07 21:04:11
回答 3查看 959关注 0票数 0

我正在为一个项目写4个别名,目前其中两个正在工作。E和ll别名工作,但cx别名给我一个错误cx:命令找不到。而且,我的rm别名只是删除指定的文件,但没有提供任何确认。

这是我从这两个化名中寻找的东西。

一个名为"cx“的别名,接受一个或多个文件/目录,并在指定的files/directories.

  • an别名"rm”上添加执行权限,每次删除文件时都会显示确认消息.

这是我的化名..。

代码语言:javascript
复制
alias e="exit"
alias ll="ls $1 -l"
alias cx="chmod a+x $1"
alias rm="rm -i"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-07 21:11:52

当您想使用传入参数时,您不需要别名,而是需要一个函数

代码语言:javascript
复制
cx(){ chmod a+x $1; }
ll(){ ls $1 -l; }

在这些特殊情况下,您可以完全不使用位置参数,因为参数处于最末尾,别名基本上是用它们的定义替换的。

代码语言:javascript
复制
alias ll='ls -l'
alias cx='chmod a+x'

所以cx ./foo现在是chmod a+x ./fooll ./foo现在是ls -l ./foo

概念证明

代码语言:javascript
复制
$ touch foo && ls -l ./foo
-rw-rw-r-- 1 siegex siegex 0 Mar  7 12:14 ./foo
$ alias cx='chmod a+x'
$ alias ll='ls -l'
$ cx ./foo
$ ll ./foo
-rwxrwxr-x 1 siegex siegex 0 Mar  7 12:14 ./foo
票数 4
EN

Stack Overflow用户

发布于 2011-03-07 21:11:48

尝试一下,它应该会更好:)

代码语言:javascript
复制
alias e='exit'
alias ll='ls $1 -l'
alias cx='chmod a+x $1'
alias rm='rm -i'

魔法是‘而不是’

票数 0
EN

Stack Overflow用户

发布于 2011-03-07 22:07:28

命令shopt -s expand_aliases将允许在非交互式Bash中扩展别名。(在命令行不需要它,因为这将是一个交互式shell。)

如果要在脚本中测试别名,这可能是问题的一部分。在尝试运行任何别名命令之前,尝试将shopt命令添加到脚本中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5225219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档