"Cdargs-bash.sh" komut dosyasını cdargs paketleriyle anlamaya çalışıyorum.yeni satır karakterini bash değişkenine mi ekliyorsunuz?
function _cdargs_get_dir()
{
local bookmark extrapath
# if there is one exact match (possibly with extra path info after it),
# then just use that match without calling cdargs
if [ -e "$HOME/.cdargs" ]; then
dir=`/bin/grep "^$1 " "$HOME/.cdargs"`
if [ -z "$dir" ]; then
bookmark="${1/\/*/}"
if [ "$bookmark" != "$1" ]; then
dir=`/bin/grep "^$bookmark " "$HOME/.cdargs"`
extrapath=`echo "$1" | /bin/sed 's#^[^/]*/#/#'`
fi
fi
[ -n "$dir" ] && dir=`echo "$dir" | /bin/sed 's/^[^ ]* //'`
fi
if [ -z "$dir" -o "$dir" != "${dir/
/}" ]; then
# okay, we need cdargs to resolve this one.
# note: intentionally retain any extra path to add back to selection.
dir=
if cdargs --noresolve "${1/\/*/}"; then
dir=`cat "$HOME/.cdargsresult"`
/bin/rm -f "$HOME/.cdargsresult";
fi
fi
if [ -z "$dir" ]; then
echo "Aborted: no directory selected" >&2
return 1
fi
[ -n "$extrapath" ] && dir="$dir$extrapath"
if [ ! -d "$dir" ]; then
echo "Failed: no such directory '$dir'" >&2
return 2
fi
}
test amacı nedir: Ve aşağıdaki işlevinde hakkında bir sorum var Burada
"$dir" != "${dir/
/}"
iki hat üzerinde test açıklığı; $dir
'daki yeni satır karakterini veya başka bir sebepten dolayı kaldırmak ister mi? Sadece bash komut dosyasını öğrenmeye başlıyorum ve biraz zaman geçirdim ancak böyle bir kullanım bulamadı.
Peki, verdiğiniz öneri çok iyi çalışıyor. $ '\ N' burada değişken ikamesi midir? Anlayamadım. – yorua007
Hayır, buna "ANSI-C Quoting" denir, bkz. Http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting –
oh, anladım. Çok teşekkürler. – yorua007