2

.bashrc に groovy という関数が定義されています。

Groovyを使用したいこのbashスクリプトがあります。

それは言う./batch.sh: line 7: groovy: command not found

スクリプトの冒頭で .bashrc をソースにしていますが。

何が欠けていますか?

バッチ.sh

#!/usr/bin/env bash
source ~/.bashrc
for file in *.html;
do
    name="${file%.html}"
    groovy "$name.html" "uncached/$name.mp3"
done;

.bashrc の一部

function groovy {
    sed -n '/<pre>/,/<\/pre>/p' "$1" |  replace '<pre>' '' '</pre>' '' | hextomp3 - "$2"
}

function hextomp3 {
    echo "in $1"
    echo "out $2"
    echo "cut -c10-74 $1 | xxd -r -p - $2"
    cut -c10-74 "$1" | xxd -r -p - "$2"    
}

出力:

chaouche@karabeela ~/DOWNLOADS/MUSIQUE $ ./batch.sh
./batch.sh: line 6: groovy: command not found
./batch.sh: line 6: groovy: command not found
./batch.sh: line 6: groovy: command not found
./batch.sh: line 6: groovy: command not found
./batch.sh: line 6: groovy: command not found
./batch.sh: line 6: groovy: command not found
4

1 に答える 1

4

/etc/bashrc、対話モードで実行されて~/.bashrcない場合は読み取られません。

あなたは似たようなものを見るかもしれません

case $- in
    *i*) ;;
      *) return;;
esac

また

[ -z "$PS1" ] && return

あなたの~/.bashrc

~/.profile関数を toまたは toに追加することを検討してください~/.bash_profile(後者が存在する場合)。

于 2013-10-09T18:27:36.423 に答える