csh:テストの代わりに-dをパラメータとして使用する

csh:テストの代わりに-dをパラメータとして使用する

-d /path/to/dir私はコマンドを使用してtestディレクトリを確認できることを知っています。それから:

if ( $argv[1] == "-d" )

だから動作しません。

-dただし、スクリプトにパラメータとして渡すことができるはずです。-dパラメータとして渡すために特別な属性を無効にするにはどうすればよいですか?

ベストアンサー1

"$var"二重引用符または:q演算子を使用してください$var:q


cshバリアントでは、変数が置き換えられたときに変数はありません。二重引用符、その結果はコマンドまたはファイル名の代わりに拡張されます(これはPOSIXシェルでも同様です。二重引用符を忘れた場合、スクリプトは猿轡をかむそして多くの人につながるセキュリティへの影響)。だから:

if ( "$argv[1]" == "-d" ) echo 1

動作します。より良い方法は、:q演算子を使用して改行を処理することです。

if ( $argv[1]:q == "-d" ) echo 1

おすすめ記事