私は嘘をつかないだろう。これは任務のためのものです。詰まってちょっと苦しくて最後の手段でここまで来たので助けてください。
したがって、パスが相対パスであるか絶対パスであるかを調べて印刷するスクリプトを作成する必要があります。教授がコマンドラインの置き換えをするように言われた最後の部分で詰まったのですが、どうすればいいのかわかりません。これが私が今まで持っているものです。
if [ "$#" -ne 1 ]; then
echo 1>&2 "$0: please insert one valid file name;found $# ($*) "
echo 1>&2 "Usage: $0 [Filename..]"
exit 2
fi
if [ -z "$1" ] ; then
echo 1>&2 "$0: file name cannot be empty; found $# ($*) "
echo 1>&2 "Usage: $0 [filename...] "
exit 2
fi
if [ ! -L "$1" ] ; then
echo 1>&2 "$0: The pathname '$1' is not a symlink"
echo 1>&2 "Usage: '$0' [symlink] "
exit 2
fi
a=ls "$1" | awk '{ print $NF }'
if [ -z "$a" ] ; then
echo 1>&2 "$0: Pathname is empty "
exit 3
fi
type=$(a)
case "$b" in
/* ) type='an Absolute Pathname' ;;
* ) type='a Relative Pathname in the current directory' ;; # the "default" match
echo "pathname'$a' is $type"
esac
質問が明確でない場合は質問してください。ありがとう
答え1
スクリプトはまだ準備されていませんが、今正しい方向に向かっています。
if [ "$#" -ne 1 ]; then
echo 1>&2 "$0: please insert one valid file name;found $# ($*) "
echo 1>&2 "Usage: $0 [Filename..]"
exit 2
fi
if [ -z "$1" ] ; then
echo 1>&2 "$0: file name cannot be empty; found $# ($*) "
echo 1>&2 "Usage: $0 [filename...] "
exit 2
fi
if [ ! -L "$1" ] ; then
echo 1>&2 "$0: The pathname '$1' is not a symlink"
echo 1>&2 "Usage: '$0' [symlink] "
exit 2
fi
a=$(ls -l "$1" | awk '{ print $NF }')
if [ -z "$a" ] ; then
echo 1>&2 "$0: A Really Good Error Message."
exit 3
fi
# type=$a
case "$a" in
/*) type='an Absolute Pathname' ;;
*) type='a Relative Pathname in the current directory' ;; # the "default" match
esac
echo "pathname'$a' is $type"