加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 01:50:15 所属栏目:安全 来源:网络整理
导读:在 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_ali
在 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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读