変数の最後から '/'を削除したいので、ファイルがディレクトリへのシンボリックリンクであるかどうか確認できます。私は思っていた方法やオンラインで見つけられる方法を試しましたが、欠けているものはありますか?変数の末尾から '/'を取り除く - bash
ファイルが最後に「/」とシンボリックリンクであるかどうかを確認すると、そのファイルはディレクトリとして扱われます。これは、次のコマンドを実行することで確認できます。
if [ -L symtest/ ] ; then echo "symlink"; fi
symtestはディレクトリへのシンボリックリンクです。上記は何も出力しません。
私は削除すると「/」、それが正常に動作し、出力は「シンボリックリンク」:
if [ -L symtest ] ; then echo "symlink"; fi
私の質問があり、それは次のように渡されたときに名前から「/」削除する方法があります変数を関数に変換する?事前に
function is_it_a_symlink() {
if [ -L $1 ] ; then
echo "This file is a symlink!"
else
echo "This file is not a symlink!"
fi
}
ありがとう:
機能は、次のようになります。
注意POSIXの[パス名の解決]その(http://pubs.opengroup.org/ onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13)ルールには、あなたが観察する行動が必要です。 –
@Alexander、資源としてのABSのリンクは避けてください。悪い習慣を見せていることは長年にわたり評判があります。 (無関係な 'function'キーワードを使用します - これはPOSIX shとの互換性を損なうが、標準化された関数宣言構文には価値がない - など)。 –
@Alexander、...実際にリンクしたその特定のページには、より深刻な悪い習慣があります。 './yourscript" foo bar "" baz qux "'と './yourscript foo bar baz qux'を区別して使うことはできません。 'linkchk'関数に引用符がありません(' '$ 1"/* 'と' 'linkchk" $ element "')する必要があります。 –