タグ付けされた質問 「eval」


1
ssh-agentの出力を評価する理由
実行するssh-agentには、使用する必要があります eval $(ssh-agent) なぜeval出力する必要があるのssh-agentですか? なぜ実行できるように設計されていないのですか? 注:推奨されていないため、バックティック( `)は削除されました。たとえば、ここで詳細を読むことができます。
67 shell  ssh  ssh-agent  eval 

4
すべてのユーザー名やホームディレクトリをリストするにはどうすればよいですか?
マシン上のすべてのユーザーを一覧表示したいのですが、通常は次のようにします: ls -l /home しかし、私は他のマシンに展開されるスクリプトでそれを使用します。おそらく、彼らはそれを自宅とは呼ばないマシン(例えばmyHome)にデプロイします。だから私はそれを一般化したいls -l ~。しかし、それはすべてのユーザーのホームディレクトリの名前ではなく、私のユーザーのホームディレクトリをリストするだけです(基本的にはマシン上のユーザー名のリストを取得したいです)。どのように一般化できますか?

2
条件式の「set -e」での「eval」の動作
コマンドを検討する eval false || echo ok echo also ok 通常、我々はこれを実行するために期待するfalseユーティリティをして、終了ステータスがゼロであることから、その後、実行するecho okとecho also ok。 すべてのPOSIXのような私が使用してシェルでは(ksh93、zsh、bash、dash、OpenBSDのksh、とはyash)、これは何が起こるかですが、私たちは有効にした場合、物事は面白くset -e。 set -eが有効な場合、OpenBSD shとkshシェル(どちらもから派生pdksh)は、の実行時にスクリプトを終了しますeval。他のシェルはそれを行いません。 POSIXは、特殊な組み込みユーティリティ(などeval)のエラーにより、非対話型シェルが終了するはずであると述べています。実行がfalse「エラー」を構成するかどうかは完全にはわかりません(もしそうなら、それはset -eアクティブであることとは無関係です)。 これを回避する方法evalは、をサブシェルに置くことです。 ( eval false ) || echo ok echo also ok 問題は、POSIXに準拠した正しいシェルスクリプトでそれを実行する必要があるかどうか、またはOpenBSDのシェルのバグかどうかです。また、上記にリンクされているPOSIXテキストの「エラー」とはどういう意味ですか? 余分な情報:OpenBSDシェルは 、コマンドのecho ok有無にかかわらず両方を実行しますset -e eval ! true || echo ok 私の元のコードは次のようになりました set -e if eval "$string"; then echo …
9 posix  openbsd  eval 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.