我正在开发shell脚本。
EXEC $CXCHOME+"/etc/expand_in_place" $MMSHOME+"/PDM/bin/pmr_pdm_aos"**
CXCHOME "/opt/ericsson/aos/PDM"
MMSHOME "/opt/ericsson/aos"
expand_in_place的代码如下 -
#!/bin/bash
. $INST_DATADIR/$PKG/install/aosbootcommon.sh
filename=`basename $1`
tmpfile="/tmp/$filename.$$"
rm -f "$tmpfile"
cp -p "$1" "$tmpfile"
echoLog "Expanding $1..."
expand "$tmpfile" "$1"
rm -f "$tmpfile"
cleanExit 0
我想知道“expand_in_place”的工作原理。
答案 0 :(得分:0)
答案很长:
#!/bin/bash
使用/ bin / bash程序处理后面的代码。
. $INST_DATADIR/$PKG/install/aosbootcommon.sh
在同一过程中读取并执行此文件中的代码
filename=`basename $1`
运行basename
程序,传入第一个命令行参数(使用man basename
找出它的作用)。反向标记是一种不推荐使用的方法来捕获程序的输出。在这种情况下,basename
的输出会被放入filename
变量。
tmpfile="/tmp/$filename.$$"
将变量tmpfile
设置为/ tmp,然后设置filename
的值,然后输出当前进程ID。 $
是一个运算符,它为我们提供变量的值。 $$
为我们提供了当前PID值。
rm -f "$tmpfile"
运行传递这些参数的rm
程序:使用man rm
找出它的作用。
cp -p "$1" "$tmpfile"
运行传递这些参数的cp
程序:使用man cp
找出它的作用。
echoLog "Expanding $1..."
我不知道echoLog
做了什么,它可能是$INST_DATADIR/$PKG/install/aosbootcommon.sh
中定义的本地函数
expand "$tmpfile" "$1"
使用这些参数运行expand
程序,使用man expand
找出它的作用。
rm -f "$tmpfile"
运行传递这些参数的rm
程序:使用man rm
找出它的作用。
cleanExit 0
我不知道cleanExit
做了什么,它可能是$INST_DATADIR/$PKG/install/aosbootcommon.sh
中定义的本地函数