50570
# やりたいこと

shellscriptの中でsourceコマンドを使いraspiの中にpython3系の仮想環境を起動しpythonスクリプトを動かしたい

# 疑問点

sourceとshellscript(bash)の関係性として  
・bashは閉じられた環境で動き  
・sourceは開いた環境で動く  
っていうのはなんとなく分かり、shoptコマンドでエイリアスを展開するようにしてみたんですが  
shoptコマンドも動いてくれませんでした。。。

どうすればshellscriptでsourceコマンドが動くのでしょうか？

### start.sh

```

    #!/bin/bash
    
    shopt -s expand_aliases
    source bin/activate
    
    echo "start"
    echo python ${実行したいpythonファイル}
    echo "end"
    exit 0
    
```

### 結果

```

    $ sh -x start.sh
    + shopt
    start.sh: 3: start.sh: shopt: not found
    + /bin/shopt -s expand_aliases
    start.sh: 5: start.sh: /bin/shopt: not found
    + /bin/source /data/harvest/bin/activate
    start.sh: 6: start.sh: /bin/source: not found
    ～後略～
    
```
CC BY-SA 4.0
2018-11-23T08:24:28.010
50568
2018-11-23T09:25:59.000
2018-11-23T09:24:36.163
29942
29942
question
bash raspberry-pi shellscript raspbian
shellscript内でsourceコマンドが使えない
@metropolisさん  
ありがとうございました。  
@nekketsuuさん  
失礼いたしました、行ったことを回答に移動いたしました。

# 解決策

chmodで実行権限つけるか  
`bash start.sh`で起動する

# 原因

私のshコマンドに対する理解不足
CC BY-SA 4.0
2018-11-23T09:25:59.000
50570
2018-11-23T09:25:59.000
29942
50568
answer