【Ubuntu】alias设置的别名命令在终端正常执行在shell脚本中无法直接使用(command not found)?

​alias设置的别名命令在终端正常执行在shell脚本中无法直接使用(command not found)?

1 背景:

setup_test为在/root/.bashrc中使用alias设置的别名命令。setup_test在命令行正常执行,但是执行sh脚本,报错:setup_test:command not found

shell脚本内容如下: 

#!/bin/bash
setup_test

2 分析:

shell分为交互模式和非交互模式。脚本执行方式默认为非交互模式,普通命令行方式则默认是交互模式,而alias在非交互模式下默认是无法使用的,即alias设置的别名命令报错:command not found。

3 解决方法:
具体做法是在shell脚本内容修改如下:

#!/bin/bash -i
setup_test

说明:#!/bin/bash是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,后面的内容为解释此脚本的shell路径。

你可能感兴趣的:(报错处理,Ubuntu,ubuntu)