Problem z aliasami

Hej,
Dlaczego kiedy w pliku qq mam

alias rrr="echo ww"
rrr

i go wykonam ./qq to wywala błąd

./qq: linia 2: rrr: nie znaleziono polecenia

a jak te polecenia wkleję ręcznie do konsoli to poprawnie wypisuje na ekran ww?

Za każdym razem jak modyfikujesz pliki dotyczące basha, musisz odświeżyć jego stan.

. $HOME/.bashrc

Inaczej konsola używa poprzedniej konfiguracji.
Po drugie ./ odwołuje się do PLIKU w aktualnym folderze i nadaje mu eXecute bit = tryb wykonywalności. Skoro to tylko alias, a nie PLIK, to logiczne, że NIE MA TAKIEGO POLECENIA.
Aliasy przywołuje się bez dodatkowych operatorów.

Aby to co pokazałeś zadziałało powinno mieć nagłówek odnoszący się do basha ORAZ ustawienie stałej z przedrostkiem export a nie alias.

Tym ./ odpalałem plik w którym miałem te polecenia i kojarzę, że aliasy używa się tak jak się zdefiniowało.
Dzięki, popróbuję sobie zaktualizować i zobaczę co z tego wyjdzie

Co próbujesz osiągnąć? :> Zabawa w poznawanie Shella czy konfiguracja Basha? :>

Nie masz tego uruchomić przez ./qq tylko wykonać “source”, czyli powiadomić basha o zdefiniowanym aliasie, a w pliku z aliasami nie wykonywać żadnej dodatkowej komendy:

rm -f qq
touch qq
echo "alias rrr=\"echo ww\"" > qq

Uaktualnianie konfiguracji bash:

source qq

LUB (kropka spacja plik)

. qq

Sprawdzenie czy alias jest rozpoznany:

alias

Jeśli tak, to klepnij rrr - powinno wyskoczyć ww.

Hałtu:
https://www.tecmint.com/create-alias-in-linux/ .

2 polubienia

Kompilacja Reactos XD

Chcę ją sobie wykonać w dockerze Gitlab CI
Mam takie polecenia, które działają w dobrze w lokalnej instancji dockera.

export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true
apt update
apt install -y clang meson ninja-build mingw-w64 git wget
wget https://svn.reactos.org/amine/RosBEBinFull.tar.gz -O RosBE.tar.gz
tar -xzf RosBE.tar.gz
RosBEBinFull/RosBE.sh
./configure.sh
cd output-MinGW-i386
ninja bootcd -j8

ale na gitlabie polecenie ./configure wywala błąd Could not detect RosBE. co oznacza że RosBEBinFull/RosBE.sh nie zadziałało prawidłowo.

Problem w tym, że na końcu tego pliku jest polecenie bash --rcfile "$_ROSBE_ROSSCRIPTDIR/RosBE-rc", które wydaje się otwierać nową sesję basha i w jego środku jest wykonywane dopiero ./configure.sh ale w gitlabie jest ta nowa sesja automatycznie wyłączana, przez co ./configure nie korzysta z aliasów z pliku RosBE-rc zawierającego

# Set aliases
alias basedir="source $_ROSBE_ROSSCRIPTDIR/basedir.sh"
alias charch="source $_ROSBE_ROSSCRIPTDIR/charch.sh"
alias chdefdir="source $_ROSBE_ROSSCRIPTDIR/chdefdir.sh"
alias clean="$_ROSBE_ROSSCRIPTDIR/clean.sh"
alias help="$_ROSBE_ROSSCRIPTDIR/help.sh"
alias make="$_ROSBE_ROSSCRIPTDIR/build.sh"
alias makex="$_ROSBE_ROSSCRIPTDIR/build-multi.sh"
alias scut="source $_ROSBE_ROSSCRIPTDIR/scut.sh"
alias version="$_ROSBE_ROSSCRIPTDIR/version.sh"

# Change the current directory to the ReactOS source directory
basedir