我有一个脚本来获取和设置我的.deb系统上的最新NodeJS:
echo "Downloading, building and installing latest NodeJS"
sudo apt-get install python g++ make checkinstall
mkdir /tmp/node_build && cd $_
curl -O "http://nodejs.org/dist/node-latest.tar.gz"
tar xf node-latest.tar.gz && cd node-v*
NODE_VERSION="${PWD#*v}"
#NODE_VERSION=python -c "print '$PWD'.split('-')[-1][1:]"
echo "Installing NodeJS" $NODE_VERSION
./configure
sudo checkinstall -y --install=no --pkgversion NODE_VERSION
sudo dpkg -i node_$NODE_VERSION
不幸的是它不起作用;作为echo
行输出:
安装NodeJS i8 / dir-where-runnning-script-from / node-v0.10.24
它确实可以在shell中运行:
$ cd /tmp/node_build/node-v0.10.24 && echo "${PWD#*v}"
0.10.24
答案 0 :(得分:1)
路径中还有另一个“v”,就像在“i8 /”之前一样吗? #*v
将通过变量中的 first “v”删除;我很确定你希望##*v
通过变量中的 last “v”删除。 (从技术上讲,#
删除最短的匹配前缀,##
删除最长的匹配)。因此:
NODE_VERSION="${PWD##*v}"
应该工作。
答案 1 :(得分:0)
试试这个
sudo checkinstall -y --install=no --pkgversion "${NODE_VERSION##*v}"