我想在shell脚本中激活虚拟环境,所以我写了一个简单的脚本如下:
#!/bin/bash
source ~/env/lib/bin/activate
#nohup python mock_run.py
#echo $! > save_pid.txt
我用sh start.sh
启动脚本,但是我收到了如下错误:
start.sh: 3: start.sh: source: not found
我运行source ~/env/lib/bin/activate
没问题,为什么不能在shell脚本中运行?
答案 0 :(得分:6)
请注意shebang行:
conVec[index][0]
使用调用脚本时,无效
#!/bin/bash
仅当你直接调用脚本时,shebang才有效,就像二进制文件一样。
您需要:
sh script.sh
使 shebang 行正常工作,或使用bash明确调用它:
chmod +x script.sh
./script.sh