如何提取变量中的文件名并检查返回值

如何提取变量中的文件名并检查返回值

我正在尝试编写一个小脚本来安装最新的 NodeJS 版本。我就是这样开始的:

NODE="$(curl -sL https://nodejs.org/dist/latest | grep 'armv6l.tar.gz' | cut -d'"' -f2)" &&
wget https://nodejs.org/dist/latest/$NODE &&
tar -xzf $NODE

对于接下来的步骤,我需要做类似的事情node-v8.12.0-linux-armv6l/bin/node -v,如果这返回一个我想做的值

$ cd node-v8.12.0-linux-armv6l/
$ sudo cp -R * /usr/local/

我的问题是,它$NODE具有完整的文件名 - 包括文件扩展名。但对于命令我需要替换node-v8.12.0-linux-armv6l.我也不知道如何检查返回的版本值。

答案1

尝试下面的代码,

#!/bin/bash
SOF_PATH=/opt

NODE="$(curl -sL https://nodejs.org/dist/latest | grep 'armv6l.tar.gz' | cut -d'"' -f2)"
if [ ! -z "$NODE" ]; then
    cd $SOF_PATH
    /usr/bin/wget "https://nodejs.org/dist/latest/$NODE" >/dev/null 2>&1
    /bin/tar -xzf $NODE
    NODE_APP=${NODE%.tar.gz}
    cd $NODE_APP/bin
    NODE_VERSION=`node -v`
    echo "$NODE_VERSION"
    cd ..
    sudo cp -R * /usr/local/
fi

相关内容