GVKun编程网logo

osx – 如何创建一个bash别名?(bash创建文件)

8

关于osx–如何创建一个bash别名?和bash创建文件的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于bash–如何为grep-R写一个别名?、bash–如何创建中间的参数的别名?、ba

关于osx – 如何创建一个bash别名?bash创建文件的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于bash – 如何为grep -R写一个别名?、bash – 如何创建中间的参数的别名?、bash – 如何在shell脚本中创建别名?、bash – 如何在参数位于中间的位置创建别名? [重复]等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

osx – 如何创建一个bash别名?(bash创建文件)

osx – 如何创建一个bash别名?(bash创建文件)

我在OSX上,我需要把这样的东西,别名blah =“/ usr / bin / blah”在配置文件,但我不知道配置文件的位置。
您可以在启动脚本文件中添加别名或函数。通常这是主目录中的.bashrc,.bash_login或.profile文件。

因为这些文件是隐藏的,你必须做一个ls -a列出他们。如果你没有一个,你可以创建一个。

如果我记得正确,当我买了我的Mac,.bash_login文件不在那里。我不得不为自己创建它,以便我可以把提示信息,别名,函数等。

如果您想创建一个步骤如下:

>启动终端>键入cd〜/转到您的主文件夹>键入touch .bash_profile以创建新文件。>使用您最喜爱的编辑器编辑.bash_profile(或者您可以直接键入打开-e .bash_profile以在TextEdit中打开它。>类型。 .bash_profile重新加载.bash_profile并更新您添加的任何别名。

bash – 如何为grep -R写一个别名?

bash – 如何为grep -R写一个别名?

我最后打字
grep -Rni pattern .

可怕的很多我如何把它变成一个别名

alias gr='grep -Rni $@ .'

跑步给出:

$gr pattern
grep: pattern: No such file or directory

即使别名看起来不错:

$type gr
gr is aliased to `grep -R $@ .'

看来,$@和.实际执行时被交换.

做一个功能,而不是别名.将它保存在一个文件中,例如mylibrary.sh,并且每当你想使用该函数时,都会源文件

例如mylibrary.sh

myfunction(){
 grep -Rni ...
}

#!/bin/bash
source mylibrary.sh
myfunction

bash – 如何创建中间的参数的别名?

bash – 如何创建中间的参数的别名?

我试图定义一个别名,其中参数插入到中间,而不是附加到结尾.

我试着像这样定义它:

alias grep_logs="grep $1 */log/*.log"

其中$1是grep_logs的第一个参数,这样:

grep_logs foo

将执行以下命令:

grep foo */log/*.log

而是运行命令:

grep foo */log/*.log foo

这导致错误:

grep: foo: No such file or directory

有可能使用别名来做这个,还是需要定义一个函数?

尝试在〜/ .profile中定义一个函数.
function greplogs(){
    grep "$1" */logs/*.log
}

bash – 如何在shell脚本中创建别名?

bash – 如何在shell脚本中创建别名?

在 Linux系统上定义别名非常简单.

从以下示例中我们看到:I_am_only_ls_alias alias命令将输出作为ls命令提供给我们

# alias I_am_only_ls_alias=ls
 # I_am_only_ls_alias

输出:

file   file1

但是当我尝试在bash脚本中执行相同操作(定义别名I_am_only_ls_alias)时,我得到I_am_only_ls_alias:找不到命令.

我的bash脚本示例:

alias_test.bash

#!/bin/bash

alias I_am_only_ls_alias=ls

I_am_only_ls_alias

运行bash脚本 – alias_test.bash

/tmp/alias_test.bash

输出:

/tmp/: line 88: I_am_only_ls_alias: command not found

所以,首先我要问:

为什么bash不将命令I_am_only_ls_alias识别为别名?

为了在bash脚本中定义别名,我需要做些什么?可能吗?

解决方法

从bash手册页:

Aliases are not expanded when the shell is not interactive,unless the expand_aliases shell option is set using shopt (see the
description of shopt under SHELL BUILTIN COMMANDS below).

所以这应该工作:

#!/bin/bash
shopt -s expand_aliases
alias I_am_only_ls_alias=ls
I_am_only_ls_alias

脚本通常使用函数,而不是别名.

bash – 如何在参数位于中间的位置创建别名? [重复]

bash – 如何在参数位于中间的位置创建别名? [重复]

参见英文答案 > Make a Bash alias that takes a parameter?12个答案我正在尝试定义一个别名,其中参数插入到中间,而不是附加到结尾。

我试着像这样定义它:

alias grep_logs="grep $1 */log/*.log"

其中$ 1是grep_logs的第一个参数,例如:

grep_logs foo

将执行以下命令:

grep foo */log/*.log

但相反,它运行命令:

grep foo */log/*.log foo

这会导致错误:

grep: foo: No such file or directory

是否可以使用别名来执行此操作,还是需要定义函数?

尝试在〜/ .profile中定义一个函数。
function greplogs(){
    grep "$1" */logs/*.log
}

今天关于osx – 如何创建一个bash别名?bash创建文件的讲解已经结束,谢谢您的阅读,如果想了解更多关于bash – 如何为grep -R写一个别名?、bash – 如何创建中间的参数的别名?、bash – 如何在shell脚本中创建别名?、bash – 如何在参数位于中间的位置创建别名? [重复]的相关知识,请在本站搜索。

本文标签: