Não é possível executar o Bash 5 a partir do launchd
Sep 21 2020
Eu tenho o seguinte agente de inicialização:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>bash-check</string>
<key>Program</key>
<string>/Users/spark/tmp/bash-check</string>
<key>StandardOutPath</key>
<string>/Users/laktak/bash-check.log</string>
</dict>
</plist>
Com o seguinte script bash-check:
#!/usr/local/bin/bash
type bash
bash --version
Não consigo fazer com que use o Bash 5 ( /usr/local/bin/bash), o log de launchctl start bash-checké sempre:
bash is /bin/bash
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)
Copyright (C) 2007 Free Software Foundation, Inc.
Respostas
nohillside Sep 21 2020 at 16:04
Seu script usa typepara encontrar a primeira instância de bashdentro PATHe então chama exatamente essa instância. Portanto, se /binestiver antes /usr/local/bin(ou, mais provavelmente, /usr/local/binnão estiver PATH), a versão do macOS do bashser encontrada e executada.
Para verificar a versão do shell em execução, use
echo $BASH_VERSION
em vez de.
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino