Как проверить, успешно ли запущен псевдоним в сценариях оболочки?

У меня есть сценарий bash, в котором я хотел бы проверить, успешно ли работает псевдоним для активации conda и, если нет, выдает ошибку. Хотя скрипт выполняется без сообщения об ошибке, ни один из echo не печатается. Как я могу это исправить?

Мой файл ~/.bashrc содержит

### shortcut to activate installed miniconda2
activate_conda() {
export PATH=$HOME/miniconda2/bin:/bin:/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games;
   }
alias activate_conda="activate_conda"

И когда я запускаю следующий скрипт bash

#!/bin/bash
#Check if activate_conda command runs successfully  

activate_conda
if [ $? -eq 0 ]; then
   echo "activate_conda was successful"         
   exit 0
else
   echo "activate_conda was not successful. 
         Please check your .bashrc file"                  
   exit 1
fi

#another function to check the same alias  
if activate_conda ; then
  echo "Command succeeded"
else
  echo "Command failed"
fi

скрипт запускается, но нет команд echo распечатать. Я думаю, что вышеупомянутые функции действительны для фактической сборки в терминальных командах. Но я пытаюсь запустить alias как команду.

Как проверить, успешно ли выполнена команда?

2
задан 5 June 2019 в 20:02

1 ответ

Ваш скрипт не выполняется, потому что ни псевдоним, ни функция оболочки не доступны из скрипта bash. В сценариях используйте либо исходную команду вместо псевдонима, либо включите определение функции в вызывающий сценарий. В конце концов, вы можете ввести код для функции в сценарий из другого файла, если хотите использовать одну и ту же функцию в нескольких сценариях (см. help source в терминале).

Чтобы узнать, как проверить, успешно ли выполнена команда, см. Как проверить, успешно ли выполнена команда? .

1
ответ дан 5 June 2019 в 20:02

Другие вопросы по тегам:

Похожие вопросы: