我在linux下得环境配置文件~/.bashrc中定义(alias)了一个别名,能在命令行下使用

但是在shell脚本中使用时却提示commandnotfind,请问这是为什么啊... 但是在shell脚本中使用时却提示command not find,请问这是为什么啊 展开
 我来答
matao3754
2012-08-06
知道答主
回答量:8
采纳率:0%
帮助的人:8.5万
展开全部
你应该是空格的问题吧,比如alias ls="ls -l"这就必须得加引号,比如alias vi=vim就不需要引号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
快又稳
2024-10-28 广告
在Linux环境下配置基于域名的虚拟主机,需安装Apache或Nginx等Web服务器,并编辑配置文件。以Apache为例,需创建虚拟主机配置文件,指定域名、文档根目录等,然后启用该配置文件并重启Apache服务。同样,Nginx也需在相应... 点击进入详情页
本回答由快又稳提供
JJ_Victor
2012-08-05 · TA获得超过430个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:158万
展开全部
看看你命令打对没有,注意空格
给你个例子吧。比如我把启动x 就直接改为go
alias go='startx'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ywb521hlj
2012-08-05 · TA获得超过164个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:172万
展开全部
如果你非要这样 建议你直接在脚本中定义别名 因为环境变量不同,外部定义的别名估计在脚本里是用不了的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vvv600160
2018-04-11 · TA获得超过136个赞
知道小有建树答主
回答量:126
采纳率:100%
帮助的人:85.6万
展开全部

这个问题有三个可能原因导致。

  1. 忘记source。

    如果写了后,这段脚本没有在.bashrc里或者.cshrc里面,是不会跟着新开的terminal自动加载的。所以这时候需要手动source一下。

    即便写在了.bashrc或者.cshrc里面,当前terminal终端程序也不会立即生效,需要新开一个terminal终端,才会重新加载source文件,或者你手动在当前终端里source一次。

  2. alias命令里忘记带空格了。

    比如写个alias

    alias cadhome 'cd/home/PC/cad/'

    忘了带空格,就把cd后面的路径识别为整体命令的部分了,某个粗心的低级错误。所以才提示没有找到命令。
  3. windows下写的脚本,在linux下无法正常运行。

    因为windows下换行是\r\n,而这个\r是隐形的字符。所以你查看alias也看不到,但是实际上执行的命令是原有的命令后面莫名其妙加了一个\r,所以提示找不到命令,这样写cd命令也会提示找不到目录,因为莫名其妙有个\r在后面。。。

这个比较好检查,vim下面输入:set ff 

返回的是dos,就代表换行是用\r\n的方式,再手动敲一次 :set ff=unix ,强制转换成unix格式,再保存即可!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shallowgrave
2012-08-05 · TA获得超过510个赞
知道小有建树答主
回答量:340
采纳率:0%
帮助的人:400万
展开全部
还需要重载一下哦,不知道你忘记没。
source ~/.bashrc
还有楼上的答案也是可能的,Linux下命令对于空格还是有讲究的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式