CentOS 4.1 で bashdb を使用しようとしています (残念ながら、別の / 新しい OS を選択することはできません)。bash 4.2 をインストールしてから、bashdb 4.2-0.8 をインストールしました。configure、make、make check、make install からの苦情はありませんでした。すべてが桃色に見えました。
ただし、「bash --debugger myscript」または「bashdb myscript」として bashdb を使用しようとすると、常に次のエラーが発生します。
[bot@sjbld1 bin]$ bashdb -- putxen.sh
bash debugger, bashdb, release 4.2-0.8
Copyright 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Rocky Bernstein
This is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
/usr/local/share/bashdb/lib/setshow.sh: line 91: /dev/pts/2: Permission denied
/usr/local/share/bashdb/lib/setshow.sh: line 91: /dev/pts/2: Permission denied
/usr/local/share/bashdb/lib/setshow.sh: line 91: /dev/pts/2: Permission denied
/usr/local/share/bashdb/lib/setshow.sh: line 91: /dev/pts/2: Permission denied
[bot@sjbld1 bin]$
setshow.sh に 91 行目はありません。また、/dev のディレクトリ リストに /dev/pts もありません。
続行する方法についての提案は非常に高く評価されます。私は壊れたシェル スクリプトを処理しています。bash (または Linux) が苦手なので、set -x および echo ステートメントよりも詳細なデバッグを望んでいます。
ありがとう
完全を期すために、konsoleboxの要求に従って、bashdbテストとして使用しようとしていたbashスクリプトを追加する必要がありましたが、「許可が拒否されました」問題はどのコードでも発生し、Red Cricketが提案するようにsudoを使用することで解決されます. スクリプトは次のとおりです。
[bot@sjcpbrvpxbld1 bin]$ cat putxen.sh
if [ x$1 == x ]
then
echo must have filename as parameter
exit 1
fi
if [ -e $1 ]
then
echo $1 found
else
echo cannot find ./$1
exit 1
fi
FTPTGT=10.10.10.25
DIRTGT=xva
echo ftp upload file to $DIRTGT directory on $FTPTGT
ftp -n $FTPTGT <<EOF
user anonymous pass
hash
bin
cd $DIRTGT
put "$1"
bye