LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 640|回复: 4

关于脚本中的命令和命令别名的关系?

[复制链接]
发表于 2007-1-17 09:45:29 | 显示全部楼层 |阅读模式
请问在shell脚本中的命令,比如:ls,cp等如果在启动时定义了别名,那么在脚本中的这些命令是执行的别名还是原命令本身?我试了一下,好象在脚本中,别名不起作用。这个在脚本手册中有说明吗?
 楼主| 发表于 2007-1-17 09:54:20 | 显示全部楼层

脚本问题

[ "${1}" != "" ] && runlevel=${1}

if [ "${runlevel}" = "" ]; then
        echo "Usage: ${0} <runlevel>" >&2
        exit 1
fi

上边这行的功能和下边是不是一样:

runlevel=${1}

if [ "${runlevel}" = "" ]; then
        echo "Usage: ${0} <runlevel>" >&2
        exit 1
fi
我觉得没有差别!但多了一个判断!
是不是这样,请高手指点!多谢!
回复 支持 反对

使用道具 举报

发表于 2007-1-17 12:42:01 | 显示全部楼层
你指的是
alias rm 'rm -i'
这样的?

这是由profile 或 bashrc 执行的
1。启动脚本,无论如何都是在 profile 和 bashrc 之前执行的。
2。profile 和 bashrc 会判断是不是 intractive bash ,如果无人控制,是不会 alias 的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-17 15:53:44 | 显示全部楼层
可能我没讲请楚,我的意思是:
在启动时,定义ls的别名:
alias ls='ls -l'
在启动之后,如果我写一个脚本:
#!/bin/bash
ls
那么结果是什么样的?是ls的结果还是ls -l的?
回复 支持 反对

使用道具 举报

发表于 2007-1-17 21:01:08 | 显示全部楼层
alias 只在当前 shell 起作用.

用 source xxx.sh 时,会在shell 中起作用.

如果 alias 在 profile 或 bashrc 中,如果不判断 intractive bash ,直接 alias ,
./xxx.sh
时,bash 首先运行 profile 或 bashrc ,也就有 alias 的影响了.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表