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

Kornシェル(ksh)は、高度なスクリプト機能を備えたシェルであり、商業用のuniceおよび一部のBSDシステムで一般的に使用されていますが、Linuxではほとんど使用されていません。


4
二重引用符「[[」内ではなく、単一括弧「[」内ではなく引用符なしのスペースを使用したパラメーター展開が機能するのはなぜですか?
単一または二重の括弧の使用と混同しています。このコードを見てください: dir="/home/mazimi/VirtualBox VMs" if [[ -d ${dir} ]]; then echo "yep" fi 文字列にスペースが含まれていても、完全に機能します。しかし、単一のブラケットに変更すると: dir="/home/mazimi/VirtualBox VMs" if [ -d ${dir} ]; then echo "yep" fi それは言います: ./script.sh: line 5: [: /home/mazimi/VirtualBox: binary operator expected 次のように変更すると: dir="/home/mazimi/VirtualBox VMs" if [ -d "${dir}" ]; then echo "yep" fi 正常に動作します。誰かが何が起こっているのか説明できますか?"${var}"スペースに起因する問題を防ぐために、変数を二重引用符で囲む必要があるのはいつですか?
86 bash  quoting  ksh  test 


8
$ *と$ @の違いは何ですか?
次のコードを検討してください。 foo () { echo $* } bar () { echo $@ } foo 1 2 3 4 bar 1 2 3 4 以下を出力します: 1 2 3 4 1 2 3 4 私はKsh88を使用していますが、他の一般的なシェルにも興味があります。特定のシェルの特殊性を知っている場合は、言及してください。 SolarisのKshのマニュアルページで次のことがわかりました。 $ *と$ @の意味は、引用符で囲まれていない場合、またはパラメーター割り当て値またはファイル名として使用されている場合は同じです。ただし、コマンド引数として使用する場合、$ *は `` $ 1d $ 2d ... ''と同等です。dはIFS変数の最初の文字で、$ @は$ 1 $ 2 ...と同等です。 …
73 shell  quoting  ksh  arguments 

4
シェルksh93は死んでいますか?
2013-01-10に、グレンファウラーはこれをast-usersメーリングリストに投稿しました。 ASTおよびUWINリストで何度か指摘されているように、AT&TはOpenSouceソフトウェアをほとんどサポートしていません。そのため、ASTソフトウェアのかなり大規模なコレクションに関与する人はほとんどいません。これにもかかわらず、ksh、nmake、vczip、UWINおよび他のASTツールはいくつかのAT&Tのプロジェクトで使用され続けています。 サポートが不足しているのはソフトウェアだけではないことがわかりました。dgk (David Korn)(AT&Tフェロー、36年間のサービス)とgsf (Glenn Fowler)(AT&Tフェロー、29年間のサービス)の両方が終了しました。 10. 3番目の主要なパートナーであるPhong Vo(AT&Tフェロー、32年間のサービス)は、数か月前にGoogleを去りました。UWINのメンテナーであるJeff Fellinは、まだAT&Tに所属しており、いくつかの重要な操作に対してUWINサポートを提供しています。 dgkとgsfはどちらもASTソフトウェアで引き続き動作し、実際には(少なくとも短期的には)それに集中するためにより多くの時間があります。 ダウンロードサイトとメールグループは、少なくとも今後数か月はAT&T内に残ります。AT&Tの同僚であるdr.ek、ASTユーザー、バグディテクターがサイトを管理します。astopen.orgドメインを保護し、バグ追跡機能を備えたリポジトリなど、AT&T以外のホスティングオプションを調査しています。 変更のプロセスには時間がかかります。ユーザーコミュニティの忍耐に感謝します。ほぼ30年間安定していた環境で働いた後、個人、キャリア、およびハッキングの未来を計画するのに3週間かかることは非常にショックです。計画が固まると、ユーザーグループに通知されます。 Korn自身のウィキペディアページでは、2013年まで AT&T Labs Researchで働いていたと述べていますが、現在は必要な Google 引用のために働いています。dgkornのgithubのユーザーアカウントが 2014年11月に作成されましたが、それはその時以来、正確に0公共貢献の源となって、そしてできるだけ多くのレポに加入しています。 2013年以降、関連するメーリングリストの活動は次第に少なくなりました。たとえば、2013年の第4四半期のast-developersリストには 2013-12-01までに156のメッセージが投稿されていましたが、2015年第4四半期の同じリストには3つのメッセージしかリストされていません。 件名:Re:[ast-developers] astからGitHubへの移行 astコードベースをGitHubなどのソースコードリポジトリに移行する意図はありますか?そうすれば、コミュニティが貢献しやすくなります。このような共同作業環境がなければ、バグ報告やソースコードパッチがエーテルで失われるため、ast関連の開発が停止するのではないかと心配しています。 誰でもどこでも公開できる完全なgitリポジトリを持っていますか(repo.or.cz、githubなど)?Gitサーバーは古くからダウンしており、現在はwww2.research.att.com(204.178.8.28)でもダウンしています。 これは、Kornshellの将来について疑問を抱かせます。死んだの?これ以上のリリースはありませんか? 実際、AT&Tはラボの研究のランディングページにすべてのASTリンクをリストしていますが、これらはどれも機能していないようです。これらは、ダウンロード用にkornshell.comにリストされている同じデッドリンクです。仮に現在のサーバーの状態が一時的なものであることが証明されたとしても、枯渇したメーリングリストは前兆とは思えません。 それで、kornシェルは現在カプートされていますか?または、これらの線に沿って他の場所でより多くの活動がありますか?

5
duのファイルのみでサイズを取得する
duコマンドを使用して、すべてのファイルとそのサブディレクトリ内のすべてのファイルのサイズを取得するにはどうすればよいですか。 すべてのファイル(およびサブディレクトリ内のファイル)のサイズを取得するために次のコマンドを試行しています find . -type f | du -a ただし、これによりフォルダーサイズも出力されます。すべてのファイルとサブディレクトリ内のファイルのサイズのリストを取得するにはどうすればよいですか?私も試してみましたexec flagが、それは結果を実行した後、私は別のコマンドにパイプへの出力方法がわからないよfindにしますdu。 オペレーティングシステムは、kshシェルを備えたAIX 6.1です。
51 files  find  disk-usage  aix  ksh 

6
ブレース拡張はいつ使用しますか?
ブレース拡張が何であるかは理解していますが、それをどのように使用するのが最適かわかりません。 いつ使用しますか? あなたがあなた自身のヒントを持っているなら、私にいくつかの便利で注目すべき例を教えてください。

3
ドット(。)を含む変数をエクスポートする
ドットを含む変数をエクスポートする方法。試したときに「無効な変数名」が表示されます: export my.home=/tmp/someDir -ksh: my.home=/tmp/someDir: invalid variable name メタキャラクターのドット(。)をエスケープしても助けにはなりませんでした $ export my\.home=/tmp/someDir export: my.home=/tmp/someDir: is not an identifier

3
sedを使用して、solarisのコマンドからの出力に色を付ける
Linuxとsolarisの両方で動作するkshスクリプトがあります。特定のコマンドの出力を色付けしようとしています。Linux(特にRHEL6)では動作しますが、solaris(SunOS 5.10)では動作しません。 Linuxのコマンド(出力「テスト」は正しく赤で表示されます): [amartin@linuxbox:~]$ echo "test" | sed 's,.*,\x1B[31m&\x1B[0m,' test solarisのコマンド(出力「テスト」は色付けされていません): [amartin@sunbox:~]$ echo "test" | sed 's,.*,\x1B[31m&\x1B[0m,' x1B[31mtestx1B[0m 出力に生のコードなしで、出力が赤になるようにこのコマンドを作成する方法はありますか?「echo」コマンドを変更することはできません。これは、実際に実行しているコマンドの入力にすぎないためです。




2
関数、エイリアス、実行可能ファイルのハイフンに問題はありますか?
私のテスト(BashおよびZシェル)では、名前にハイフンが含まれる関数またはエイリアスまたは実行可能なシェルスクリプトの定義に問題はありませんでしたが、これがすべてのシェルおよびすべてのユースケースで問題ないことを確信していません。 私がこれをしたい理由は、ハイフンはアンダースコアよりも入力しやすいため、より速く、よりスムーズになります。 それが問題ではないと信頼するのをためらう理由の1つは、一部の言語(Rubyなど)では、ハイフンが周囲にスペースがなくてもマイナス記号として解釈されることです。ハイフンがスペースなしでもオプションを通知するものとして解釈されるシェルで、このようなことが起こるかもしれませんが、私は驚かないでしょう。 私が少し疑っているもう1つの理由は、テキストエディターがハイフンを含む関数の構文強調表示を台無しにしていることです。(もちろん、シェルスクリプトの構成を強調する構文の単なるバグである可能性は完全にあります。) ハイフンを避ける理由はありますか?
25 bash  shell  zsh  ksh  csh 

4
find -exec呼び出しでのユーザー定義関数の実行
私はSolaris 10を使用していますが、ksh(88)、bash(3.00)、およびzsh(4.2.1)で以下をテストしました。 次のコードは結果を生成しません。 function foo { echo "Hello World" } find somedir -exec foo \; (交換することによって示されるように検索には、いくつかのファイルが一致しない-exec ...と-print)、およびから外部に呼び出されたときに機能が完璧に動作findコール。 man findページの内容は-exec次のとおりです。 -exec command実行されたコマンドが 終了ステータスとしてゼロ値。の終わり コマンドはエスケープされた セミコロン(;)。コマンド引数{}は 現在のパス名に置き換えられます。もし -execの最後の引数は{}であり、あなたは セミコロン(;)ではなく+を指定します。 コマンドの呼び出し回数が少ない {}はパス名のグループに置き換えられました。もし コマンドを呼び出すと、 終了ステータスとしてゼロ以外の値、検索 ゼロ以外の終了ステータスを返します。 私はおそらくこのようなことをして逃げることができます: for f in $(find somedir); do foo done しかし、私はフィールドセパレーターの問題に対処することを恐れています。 呼び出しからシェル関数(同じスクリプトで定義され、スコープの問題に煩わされないようにする)をfind ... -exec ...呼び出すことは可能ですか? 私は両方でそれを試してみました/usr/bin/findし、/bin/findそして同じ結果を得ました。

6
任意のURLから応答を取得する方法は?
プロジェクトのURLがUP / Workingであるかどうかを確認するために、シェルスクリプトを作成するように求められました。 私はインターネット上でいくつかのヒントを見つけようとしましたが、私が得たのはURLが存在するかどうかをチェックすることです。 私は最初に試しましたwget。 wget -S --spider https://genesis-dev.webbank.ssmb.com:21589/gop-ui/app.jsp 2>&1 | awk '/^ /' if [ $? -ne 0 ] then echo "Server is UP" else echo "Server is down" fi 私の次の試みはでしたcurl。 curl -ivs https://genesis-dev.webbank.ssmb.com:21589/opconsole-sit/opconsole.html# if [ $? -ne 0 ] then echo "Server is UP" else echo "Server is …

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