首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash别名带有回勾/可执行部分的命令(转义回退)

Bash别名带有回勾/可执行部分的命令(转义回退)
EN

Stack Overflow用户
提问于 2017-03-24 10:35:41
回答 1查看 430关注 0票数 2

我做了一个简单的bash命令来清除Laravel中的缓存:

代码语言:javascript
复制
for w in `php artisan | grep 'clear' | awk '{print $1;}'`; do php artisan $w; done

我想将它添加为别名,例如,我只做laravel-cache。我跑了:

代码语言:javascript
复制
alias laravel-cache="for w in `php artisan | grep 'clear' | awk '{print $1;}'`; do php artisan $w; done"

考虑到这会添加一个别名,但是当运行alias来查看它们时,我发现:

代码语言:javascript
复制
# alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias laravel-cache='for w in clear-compiled
auth:clear-resets
cache:clear
config:clear
route:clear
view:clear; do php artisan view:clear; done'
alias ll='ls -alF'
alias ls='ls --color=auto

但很明显这不管用:

代码语言:javascript
复制
# laravel-cache
bash: syntax error near unexpected token `auth:clear-resets

因此,我的问题是如何避免回勾(或者在运行别名时执行可执行部分,而不是在添加别名时执行)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-24 10:46:29

您可能应该创建一个function而不是一个alias

单线

代码语言:javascript
复制
laravel-cache () { for w in $(php artisan | grep 'clear' | awk '{print $1}'); do php artisan "$w"; done ; }

格式

代码语言:javascript
复制
laravel-cache () { 
  for w in $(php artisan | grep 'clear' | awk '{print $1}') 
    do
      php artisan "$w"
  done ;
}

通常,无论何时,不仅仅是更改命令的默认选项(例如。建议使用函数来执行附加命令。

例如,您可以将其添加到您的~/.bash_profile中,然后将其类似于别名。一旦添加到您的配置文件中,只需源它,您就应该准备好使用以下命令:

代码语言:javascript
复制
$ source ~/.bash_profile
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42997223

复制
相关文章

相似问题

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