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

POSIXは、オペレーティングシステム間の互換性を維持するためにIEEEによって指定された規格のファミリであるPortable Operating System Interfaceの頭字語です。

2
アプリケーションが$ PATHに存在するかどうかをテストするにはどうすればよいですか?
私は、可能な限りsh多くのDRYと多くの「すべての* nixで動作する」で動作するように、すべてのstartup / envスクリプトを記述しようとしています。これは、そこにないコードを実行しようとすると、コードが正常に失敗することを確認することを意味します。そのためには、プログラムが存在するかどうかをテストできる必要があります。ファイルが存在するかどうかをテストする方法は知っていますが、アプリケーションがパス内で実行可能であるかどうかをテストする方法はわかりません。これらの一部はarch、ubuntu、およびcentosで動作する必要があるため、$ PATHを使用します。rootを持たないシステムのhomedirにインストールされるものもあれば、インストールされないものもあれば、システムパスにインストールされるものもあります。

1
`fc`コマンドの文字は何を表していますか?
fc前のコマンドを編集して後で発行できるコマンドを見つけました。 FCEDITエディタを設定するための独自の環境変数と、POSIX Programmer's Manual(1p)のマニュアルページがあります。 これは、ファイル作成/tmpディレクトリを、ファイルが(保存されている場合は内容を実行:wq中vim)。 それとは別に、fc -l以前に実行されたコマンドに番号を付けてリストし、選択することができます。 知っておくと本当に便利で便利なコマンドです。 問題は、その名前が本当に意味するものです。コマンドとその機能を念頭に置く方法は? "ファーストクラス"?または、単に「機能」としても(前の文を作成した後に何が思い浮かびましたか)? マニュアルでは、単に「fcユーティリティ」と呼んでいます。
19 zsh  command  posix 

2
POSIXが特定のシェルビルトインで外部実装を必要とするのはなぜですか?
printfがyashの組み込みであるかどうかに関するこの質問から、POSIX標準を引用するこの答えが出てきます。 答えは、POSIX検索シーケンスは目的のコマンドの外部実装を見つけ、シェルがそれを組み込みとして実装している場合、組み込みを実行することであると指摘しています。(特別なビルトインではないビルトインの場合) POSIXには、内部実装の実行を許可する前に、外部実装が存在するというこの要件があるのはなぜですか? それは... arbitrary意的だと思うので、私は興味があります。

4
現在のシェルを確認するcheckbashisms準拠の方法
私.profileので、次のコードを使用して、ログインシェルが実際にBashである場合にのみBash関連のエイリアスと関数がソースされるようにします。 # If the current (login) shell is Bash, then if [ "${BASH_VERSION:-}" ]; then # source ~/.bashrc if it exists. if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi 現在、シェル構成ファイル、スクリプト、および関数をバージョン管理下に置いています。また、最近、Bash固有の機能の恩恵を受けないカジュアルなBashismをシェルスクリプトから削除するプロセスを開始function funcname()しましたfuncname()。たとえば、に置き換えます。 シェルファイルリポジトリには、リポジトリ内の各ファイルでDebianのdevscriptsパッケージからユーティリティを実行するpre-commitフックを設定し、Bash固有の構文を誤って導入しないようにしました。ただし、これによりmyのエラーが発生します。checkbashismssh.profile possible bashism in .profile line 51 ($BASH_SOMETHING): if [ "${BASH_VERSION:-}" ]; then 私は、どのシェルが実行されているかをチェックする方法があり、それが警告をトリガーしないかどうか疑問に思っていましたcheckbashisms。 POSIXによってリストされたシェル関連の変数のリストをチェックして、現在のシェルを表示するために使用できることを期待しました。また、インタラクティブなDashシェルで設定された変数を調べましたが、適切な候補を見つけることができませんでした。 現時点では、.profile処理対象から除外していますcheckbashisms。小さいファイルなので、手動で確認するのは難しくありません。ただし、問題を調査した後、実行中のシェル(または少なくともcheckbashisms失敗を引き起こさない方法)を判別するPOSIX準拠のメソッドがあるかどうかを知りたいと思います。 さらなる背景/説明 …

4
#!/ bin / shまたは#!/ bin / bashを使用して、Ubuntu-OSXの互換性と使いやすさ、POSIXを実現します。
いずれかのスクリプトを最初の行として使用して、目的のシェルを呼び出すことができることを知っています。 う#!/bin/sh、すべてのUNIXシステムとの互換性が絶対条件である場合にはお勧めできますか? 私の場合、私が気にしているOSはUbuntu(Debian)とOSXだけです。それを考えると、#!/bin/bash両方のシステムで使用できると確信できますか? これにより、コマンドの構文がより近代的で明確なスクリプトを使用しやすくなりますか?#!/bin/sh使用はPOSIXの使用にも関連していますか?
18 bash  shell  ubuntu  osx  posix 

2
chown(1)POSIX仕様の説明
chownユーティリティのPOSIX仕様では、その理論的根拠のセクションでchown user:group構文(以前はchown user.group)(強調マイン)について言及しています。 所有者とグループの両方を指定する4.3 BSDメソッドは、POSIX.1-2008のこのボリュームに含まれています。 chgrpおよびchown(ユーザーIDのみを変更した)ユーティリティを使用して目的の終了条件を達成できない場合があります。(現在の所有者が目的のグループのメンバーではなく、目的の所有者が現在のグループのメンバーでない場合、chown()関数は、所有者とグループの両方が同時に変更されない限り失敗する可能性があります。) user:group構文は便利だと思いました。さて、上記のことは、chown user:groupできないこととできないことがあることを暗示していますchgrp group; chown user 今、そのテキストは私には意味がありません。4.3BSDでは、rootのみが所有者をファイルに変更できるため、どのような場合でも彼ができることには制限がありません。 SysVと他のいくつかのシステムでは、ファイルの所有者がファイルのユーザーとグループを任意に変更できます(または許可するために使用されます)が、これらのシステムでも、上記のテキストは意味がありません。OK、ファイルの所有者ではなくなったため、後でchown someone-else the-file行うことはできませんがchgrp something-else the-file、chgrp最初(ファイルの所有者にとどまる)chown以降を行うことを妨げるものは何もありません。上記のテキストは正確に言っています。 私は、現在のグループのメンバーではなく、希望する所有者が問題にどのように関係しているかを理解していません。 では、所有者とグループの両方が同時に変更されない限り、chown()関数が失敗する可能性がある条件は何ですか?
18 posix  chown 



2
POSIX準拠のシェルでパスワードを要求しますか?
bashスクリプトでパスワードを要求したいときは、次のようにします。 read -s ...しかしbash、POSIXモードで実行するとsh、-sオプションは拒否されます: $ read -s sh: 1: read: Illegal option -s POSIX準拠のコマンドを使用して入力を安全に要求するにはどうすればよいですか?



1
「who mil」が出力を生成できないのはなぜですか?
IEEE Std 1003.1-2008の2016年版(別名、Open Group Base Specifications Issue 7、または単にPOSIX標準)では、whoユーティリティの根拠セクションに次のことが記載されています。 実装がwho milの呼び出しに対して出力を生成しないことは許容されます。 「mil」とは誰ですか?なぜ実装は何のために出力を生成できないのwho milですか?
16 history  posix  who 

3
POSIX検索を特定の深さに制限しますか?
最近、POSIX仕様にfind-maxdepthプライマリが含まれていないことに気付きました。 それに不慣れな人にとって、-maxdepthプライマリの目的は、いくつの深findさのレベルが下がるかを制限することです。 -maxdepth 0で結果だけで処理されているコマンドライン引数。-maxdepth 1コマンドライン引数などで直接結果のみを処理します。 -maxdepthPOSIXで指定されたオプションとツールのみを使用して、非POSIX プライマリと同等の動作を取得するにはどうすればよいですか? (注:もちろん、第1オペランドとして-maxdepth 0使用するだけで同等の機能を取得できますが、-prune他の深さまでは拡張されません。)
15 find  posix 

2
最も移植性の高いsed、awk、perl、shはどれですか?
誰かがこれらのツールを移植性の順に並べることができますか?これらのうち、最小の* nixシステムでさえ確実に見つかるのはどれですか?それらのいずれかが100%確実に存在しますか?私の推測では、順序は次のとおりです。 awk sed sh perl Bourneシェルにデフォルト設定されていないシステムがあると想像しますが、一部のシェルはデフォルトとして存在します/bin/sh。ボーン型のシェルでない場合はおそらくそうではありません。両方awkとsedPOSIX仕様でそれらを説明するページがあるので、おそらくそれらは常に存在するでしょう。そうですか?いずれの* nixにも両方がインストールされると確信できますか?組み込みシステムを含めますか?

1
GNUタイムアウトに相当するPOSIXですか?
GNU coreutils timeoutコマンドは、特定のスクリプトの状況に非常に便利で、実行が速い場合はコマンドの出力を使用でき、時間がかかりすぎる場合はスキップできます。 timeoutPOSIXで指定されたユーティリティのみを使用する基本的な動作を概算するにはどうすればよいですか? (私はそれがの組み合わせを含むことができると思っていますwait、sleep、killそして他に何が、おそらく私はより簡単なアプローチを欠けているを知っています。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.