LinuxSir.cn,穿越时空的Linuxsir!

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

发现一个有趣的现象,请解释解释

[复制链接]
发表于 2003-10-13 13:04:01 | 显示全部楼层 |阅读模式
[/home/javalee/myshell]a=date
[/home/javalee/myshell]$a
一 10月 13 12:59:47 CST 2003
当把一个命令赋值给一个变量的时候,也可以直接运行这个变量!感觉作用跟别名(alias)似的!谁能解释解释? :thank
发表于 2003-10-13 13:09:59 | 显示全部楼层
首先,bash 处理变量,把变量变成真正的值

对于 $a 类似的变量,是由 bash 负责解释的。
 楼主| 发表于 2003-10-13 14:50:16 | 显示全部楼层
谢谢~~~,当然,在shell里的变量只有让shell解释喽~~,不过,我还是很奇怪 ;)
发表于 2003-10-13 21:33:52 | 显示全部楼层
很正常啊,我在我们公司的编译脚本里面见过这样的写法:
针对不同的参数,给MK变量赋不同的值,最后再执行$MK。
 楼主| 发表于 2003-10-13 22:38:06 | 显示全部楼层
最初由 dazed_camel 发表
很正常啊,我在我们公司的编译脚本里面见过这样的写法:
针对不同的参数,给MK变量赋不同的值,最后再执行$MK。

唉~~~,我真的是好没有见识O
发表于 2003-10-14 08:17:26 | 显示全部楼层

  1.   if [ "$TARGETARCHLOC" = "CYGWIN_NT-5.0" -o "$TARGETARCHLOC" = "CYGWIN_NT-5.1" ]
  2.   then
  3.     PERL=/usr/bin/perl
  4.     SYM2DEF=sym2def_cygwin
  5.   else
  6.     if [ "$TARGETARCHLOC" = "SunOS" ]
  7.     then
  8.       PERL=/usr/bin/perl
复制代码

诸如此类的东西,便于移植

  1. exec        \
  2. env -        \
  3.         HOME="$HOME"                        \
  4.         LOGNAME="${LOGNAME:-$USER}"        \
  5.         USER="${LOGNAME:-$USER}"        \
  6.         MODLIST="$modlist"                \
  7.                                         \
  8.         MK_DIR="$mk_dir"                \
  9.         GENFILE="$genfile"                \
  10.         TARGET_ARCH="$target"                \
  11.         METAOPTIONS="$variantfile"        \
  12.         PROJNAME="$PROJNAME"                \
  13.         LM_LICENSE_FILE="$LM_LICENSE_FILE"        \
  14. $make -f "$mk_dir/mk.mk" $makeflags "$@"
复制代码

看这里,$make就是被附过值得,不同的系统,make的路径可能不一样,参数也不一样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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