Bash
如何在變數中提取文件名並檢查返回值
我正在嘗試編寫一個小腳本來安裝最新的 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
。另外我不知道如何檢查返回的版本值。
試試下面的程式碼,
#!/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