这个脚本有什么问题?
GenericMethodCache
它说#!/bin/sh
SONAR="~/SonarQube/bin/linux-x86-64/sonar.sh"
echo "Waiting to start..."
$($SONAR start)
但确实存在。我尝试了大量的变体,它只适用于eval:./start.sh: 4: ./start.sh: ~/SonarQube/bin/linux-x86-64/sonar.sh: not found
。
答案 0 :(得分:4)
请改为尝试:
#!/bin/sh
SONAR=~/"SonarQube/bin/linux-x86-64/sonar.sh"
echo "Waiting to start..."
"$SONAR" start
通过引用(如globbing)禁用Tilde扩展,因此您需要将波形符号放在引号之外。
最后一行不应该在$()
内,因为这样做首先执行命令,然后扩展内容并尝试执行由此类内容表达的命令。
答案 1 :(得分:3)
脚本通常使用$HOME
代替~
。即使在双引号内,$HOME
也会扩展。
#!/bin/sh
SONAR="$HOME/SonarQube/bin/linux-x86-64/sonar.sh"
echo "Waiting to start..."
"$SONAR" start
答案 2 :(得分:2)
您在双引号之间使用~
,因此它不会被解释为/home/whatever
。
#!/bin/sh
SONAR=~/SonarQube/bin/linux-x86-64/sonar.sh