我正在尝试在 CentOS 4.1 上使用 bashdb(不幸的是我无法选择不同/更新的操作系统)。我安装了 bash 4.2 然后 bashdb 4.2-0.8。没有来自 configure、make、make 检查或 make install 的抱怨:一切看起来都很好。
但是尝试将 bashdb 用作 'bash --debugger myscript' 或 'bashdb myscript' 总是会出现此错误:
[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。
任何如何进行的建议将不胜感激。我正在处理一个乱七八糟的 shell 脚本,而且我对 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