【问题标题】:Is there a way to expand aliases in a non-interactive sh shell?有没有办法在非交互式 sh shell 中扩展别名?
【发布时间】:2012-02-22 08:44:44
【问题描述】:

我有一组在~/.aliases 中定义的别名,我想将其提供给sh,即使它以非交互方式运行。我的系统已以典型方式设置,因此shbash 的符号链接。

当 bash 作为bash 以非交互方式运行时,这可以通过使用shopt -s expand_aliases 以及将$ENV$BASH_ENV 设置为(直接或间接)源~/.aliases

但是当bash 被非交互调用为sh 时,它似乎忽略了$ENV 和所有启动文件,所以我看不到这样做的方法。有任何想法吗?或者这是不可能的?

【问题讨论】:

标签: environment-variables sh bash non-interactive


【解决方案1】:

在运行脚本时强制 shell 交互的一种方法是使用-i,例如:

$ bash -i <script>

另外,注意如果你的脚本有执行权限,你可以替换:

#!/bin/bash

与:

#!/bin/bash -i

【讨论】:

    猜你喜欢
    • 2014-06-09
    • 1970-01-01
    • 2011-09-01
    • 2017-04-04
    • 2021-03-27
    • 1970-01-01
    • 2011-11-08
    • 2012-04-02
    • 1970-01-01
    相关资源
    最近更新 更多