当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 18 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-01 16:37 

注册: 2012-09-23 14:48
帖子: 87
系统: 10.04 and 12.04
送出感谢: 7
接收感谢: 0 次
#! /bin/bash
shopt -s expand_aliases
source /home/beizhou/.bashrc
alias
ds9

而我把 source /home/beizhou/.bashrc 改成source 其他文件则可以
这是怎么个情况? 难道要修改什么配置才可以在脚本中source .bashrc中的配置么?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-01 20:46 

注册: 2012-09-23 14:48
帖子: 87
系统: 10.04 and 12.04
送出感谢: 7
接收感谢: 0 次
没人知道么?


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-01 20:55 
头像

注册: 2010-06-16 1:05
帖子: 14681
地址: Tencent
系统: Mac OS X
送出感谢: 1
接收感谢: 153
你source干什么


_________________
twitter求fo:http://twitter.com/maplebeats
博客求踩:http://maplebeats.com


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-02 1:35 

注册: 2012-09-23 14:48
帖子: 87
系统: 10.04 and 12.04
送出感谢: 7
接收感谢: 0 次
枫叶饭团 写道:
你source干什么

我就是想在shell脚本中使用.bashrc中定义的别名啊。 网上搜说是在脚本中source下并且把shopt中的extend_aliases去掉就行了。 但是这样做了之后还是不行,不过source别的文件中的别名倒可以,所以我认为是不是哪儿有默认设置脚本中不能source .bashrc 中的别名??


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-02 2:47 

注册: 2009-08-29 10:57
帖子: 177
送出感谢: 16
接收感谢: 3
贴出运行信息

是不是你那个文件删掉了。。。


_________________
还活着


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-02 22:19 

注册: 2012-09-23 14:48
帖子: 87
系统: 10.04 and 12.04
送出感谢: 7
接收感谢: 0 次
ruandao 写道:
贴出运行信息

是不是你那个文件删掉了。。。

脚本是这样的。
#! /bin/bash
shopt -s expand_aliases
source /home/beizhou/.bashrc
alias
第二行是允许shell脚本里使用别名。 第三行是加载bashrc里面的东西,bashrc里面有很多别名,然后alias就是要显示现有的别名,然后运行后什么也没有说明bashrc里面的别名没有加载进来。。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-02 22:27 

注册: 2012-12-16 15:43
帖子: 2090
系统: debian
送出感谢: 8
接收感谢: 28
不清楚你的目的是什么,如果你想定义一些别名可以直接写在.bashrc中啊,你是想干什么? :em06


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-02 23:38 

注册: 2012-09-23 14:48
帖子: 87
系统: 10.04 and 12.04
送出感谢: 7
接收感谢: 0 次
jinjiachen 写道:
不清楚你的目的是什么,如果你想定义一些别名可以直接写在.bashrc中啊,你是想干什么? :em06

我已经把别名写在.bashrc中了啊
我就是想从我写的那个脚本中用source调用.bashrc中的别名,但是调不过来啊


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-03 4:10 

注册: 2009-08-29 10:57
帖子: 177
送出感谢: 16
接收感谢: 3
xinqijisuper 写道:
ruandao 写道:
贴出运行信息

是不是你那个文件删掉了。。。

脚本是这样的。
#! /bin/bash
shopt -s expand_aliases
source /home/beizhou/.bashrc
alias
第二行是允许shell脚本里使用别名。 第三行是加载bashrc里面的东西,bashrc里面有很多别名,然后alias就是要显示现有的别名,然后运行后什么也没有说明bashrc里面的别名没有加载进来。。



sir 你脚本内容,已经在第一贴子有了,你可以截屏下贴出你运行的信息


_________________
还活着


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-03 9:11 

注册: 2012-09-23 14:48
帖子: 87
系统: 10.04 and 12.04
送出感谢: 7
接收感谢: 0 次
ruandao 写道:
xinqijisuper 写道:
ruandao 写道:
贴出运行信息

是不是你那个文件删掉了。。。

脚本是这样的。
#! /bin/bash
shopt -s expand_aliases
source /home/beizhou/.bashrc
alias
第二行是允许shell脚本里使用别名。 第三行是加载bashrc里面的东西,bashrc里面有很多别名,然后alias就是要显示现有的别名,然后运行后什么也没有说明bashrc里面的别名没有加载进来。。



sir 你脚本内容,已经在第一贴子有了,你可以截屏下贴出你运行的信息


就是运行结果为空。。如果加载进来那些别名就肯定输出alias=''之类的N行结果。


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-04 9:03 

注册: 2012-09-23 14:48
帖子: 87
系统: 10.04 and 12.04
送出感谢: 7
接收感谢: 0 次
都搞不定?


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-04 10:43 

注册: 2009-08-29 10:57
帖子: 177
送出感谢: 16
接收感谢: 3
xinqijisuper 写道:
都搞不定?


你这个超出了我的认知,难道.bashrc是不可读的?
要不然
代码:
bash xxx
可以,
代码:
bash .bashrc
不可以,没见过


_________________
还活着


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-04 11:34 
头像

注册: 2011-05-15 1:01
帖子: 301
系统: Debian GNU/Linux sid
送出感谢: 1
接收感谢: 17
楼主你的 .bashrc 长什么样的?
我怀疑与 .bashrc 中
代码:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return

有关,在脚本里 PS1 没有设置。按你的脚本运行确实不出 alias 的信息,不过在最开始处加一行 PS1=blabla 就可以了。



_________________
评价: 3.7% xinqijisuper
 
页首
 用户资料  
 
14 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-04 12:24 

注册: 2012-12-20 15:39
帖子: 128
系统: Debian sid
送出感谢: 0 次
接收感谢: 4
alias是shell中的built-in command, 所以找不能它的man手册, 可以用man bash命令查看bash的介绍, 然后在里面查找alias的相关介绍.
alias默认只在交互式shell中被展开;
如果想要shell脚本中使用aias的话, 需要用shopt命令来修改shell选项. 楼主已经说清楚了.

现在楼主要做我, 我认为是确认你的~/.bashrc是否已经被正确载入, 可以测试一下.
比如在你的~/.bashrc文件的尾部定义一个变量, 比如
代码:
age=8

然后再你的foo.sh这个脚本文件里, 检查这个变量是否被定义了:
代码:
 echo $age
把上面的代码加入到foo.sh的尾部, 看一下, 如果打印不出8. 说明你的~/.bashrc文件没有被解析.
楼主最好能贴出你的~/.bashrc文件, 这样更容易定位问题.


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 在脚本中source ~/.bashrc不可用?
帖子发表于 : 2013-02-05 19:37 

注册: 2012-09-23 14:48
帖子: 87
系统: 10.04 and 12.04
送出感谢: 7
接收感谢: 0 次
royclark 写道:
楼主你的 .bashrc 长什么样的?
我怀疑与 .bashrc 中
代码:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return

有关,在脚本里 PS1 没有设置。按你的脚本运行确实不出 alias 的信息,不过在最开始处加一行 PS1=blabla 就可以了。



谢谢啊!把那句话注释掉就可以调用了!!
另外,请问[ -z "$PS1" ] && return 这句话什么意思??
谢谢


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 18 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:qgymib 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译