Вы не можете сделать это с оператором ? :
, так как он может обрабатывать только одно значение, а два присваивания генерируют два значения.
Вместо этого используйте реальный оператор if
:
$ echo test|awk '{ if ($2 != "") { o="ABC"; r="123" } else { o="123"; r="ABC" }} END{ print "o:"o" r:"r}'
o:123 r:ABC
Чтобы NPM получил список версий пакетов, вы должны сначала cd в папку, где находится ваше приложение NPM.
Затем запустите (из папки, в которой вы запускаете свои приложения npm)
npm ls --depth=0
Если вы ничего не видите, попробуйте команду с глобальными настройками
npm -g ls --depth=0
Следующий скрипт ищет файл package.json в каталоге, где он выполняется, для указанного пакета и распечатывает его версию:
# getPackageVersion.sh
# Searches the package.json for a specific package and prints out its version
#
# Usage:
# chmod +x getPackageVersion.sh
#./getPackageVersion.sh <package_name>
packageName=$1
if [ ! -f./package.json ]; then
echo "package.json file not found in current directory."
exit
fi
if [ -z "$packageName" ]
then
echo "No package name given."
exit
fi
packageJsonOutput=$(cat package.json | grep "\"$packageName\": \"*\"")
version=(${packageJsonOutput//:/ })
version=${version[1]//\"/}
if [ "$version" == "" ]
then
echo "Package not found."
exit
fi
echo "$version"
chmod +x getPackageVersion.sh
./getPackageVersion.sh <package_name>
$ cd ~/sw/your-project/
$./getPackageVersion.sh debug
4.3.1