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

UnixおよびLinuxのコンテキストでの関数の使用に関する質問(ほとんどがシェルスクリプトに限定されません)。Python、Perl、Rubyなどでのプログラミングに関する質問は、Stack Overflowで質問してください。

7
プログラミングの「コールバック」概念はBashに存在しますか?
プログラミングについて何度か読んだときに、「コールバック」の概念に出会いました。 おもしろいことに、この用語「コールバック関数」の「教訓的」または「明確」と呼べる説明は見つかりませんでした(読んだほとんどの説明は、私とはかなり違うようで、混乱していました)。 プログラミングの「コールバック」概念はBashに存在しますか?もしそうなら、小さく、シンプルな、バッシュの例で答えてください。
21 bash  function 

2
emacsで現在のバッファのファイル名を取得する方法は?
Vimで私が見逃している主な機能の1つは、現在のファイルのファイル名を常に%バッファーに保存することです(詳細)。次のようなコマンドを簡単に起動できます。 ;; compile current file :! gcc % ;; source current file (useful when I'm editing .vimrc :source % ;; get the size of current file :! du -sh % ;; etc, etc... 同様の機能emacs(バージョン24、違いがあれば)、つまり、現在のバッファーで開かれているファイルの名前を簡単に挿入できるようにしたいと思います。 私がやりたいことの例 ここでは、そのようなショートカットの必要性を感じたときに、より適切に説明するために、いくつかの基本的な使用例を説明します コンパイル:M-x compileemacs と入力すると、コンパイルコマンドを要求されます。gcc (current-buffer)簡単に入りたいです。 ロードファイル:.emacsファイルを編集しているときに、すぐにロードして変更をテストしたいと思います。私のやり方はそうです。M-x load-fileそれから私はいつも名前をつづり. e m a c sます。ショートカットが欲しいです。 外部プロセスを起動する:du -sh例として、シェルコマンドを実行するときにショートカットも使用できるようにしたいことを示すためだけに挙げました。M-! これまでに見つけたもの …
19 emacs  function 




5
ディレクトリごとにエイリアスを設定する方法は?
エイリアスを持っていると仮定しますが、go異なるディレクトリで異なることをしたいですか? 1つのディレクトリで実行する必要がありますcmd1が、別のディレクトリで実行する必要がありますcmd2 ところで、上記のディレクトリに切り替えるためのエイリアスは既にあります。goエイリアスにエイリアスの割り当てを追加することは可能fooですか? alias "foo=cd /path/to/foo" OSXでbash(?)を使用しています。

2
エイリアスと関数
bashマニュアルから エイリアスの定義と使用に関する規則はやや混乱しています。Bashは、その行でコマンドを実行する前に、少なくとも1行の入力を常に読み取ります。エイリアスは、コマンドが実行されたときではなく、読み取られたときに展開されます。したがって、別のコマンドと同じ行に表示されるエイリアス定義は、入力の次の行が読み取られるまで有効になりません。その行のエイリアス定義に続くコマンドは、新しいエイリアスの影響を受けません。この動作は、関数が実行されるときの問題でもあります。 エイリアスは、関数定義自体が複合コマンドであるため、関数の実行時ではなく、関数定義の読み取り時に展開されます。結果として、 関数で定義されたエイリアスは、その関数が実行されるまで利用できません。安全のため、エイリアス定義は常に別の行に配置し、複合コマンドではエイリアスを使用しないでください。 「関数が実行されるときではなく、関数定義が読み取られるときにエイリアスが展開される」と「関数が定義されたエイリアスは、その関数が実行されるまで使用できない」という2つの文は相反するようです。 それぞれの意味を説明できますか?
17 bash  alias  function 

5
ステートフルbash関数
呼び出しごとにカウントを増やす(そして返す)Bashの関数を実装したいと思います。残念ながら、サブシェル内で関数を呼び出しているため、親シェルの変数を変更できないため、これは簡単ではないようです。 これが私の試みです: PS_COUNT=0 ps_count_inc() { let PS_COUNT=PS_COUNT+1 echo $PS_COUNT } ps_count_reset() { let PS_COUNT=0 } これは次のように使用されます(したがって、サブシェルから関数を呼び出す必要があります)。 PS1='$(ps_count_reset)> ' PS2='$(ps_count_inc) ' そうすれば、番号が付いた複数行のプロンプトが表示されます。 > echo 'this 1 is 2 a 3 test' 可愛い。しかし、上記の制限のために機能しません。 機能しない解決策は、変数ではなくファイルにカウントを書き込むことです。ただし、これにより、同時に実行される複数のセッション間で競合が発生します。もちろん、シェルのプロセスIDをファイル名に追加することもできます。しかし、多くのファイルでシステムが乱雑にならないより良い解決策があることを願っています。

1
xargsで定義済み関数を使用する方法
これは私のコードです #!/bin/bash showword() { echo $1 } echo This is a sample message | xargs -d' ' -t -n1 -P2 showword したがって、関数showwordにパラメーターとして渡す文字列をエコーする関数があります。 次にxargs、関数を呼び出して一度に1つの単語を関数に渡し、関数の2つのコピーを並行して実行しようとしています。動作してxargsいないのは、機能を認識しないことです。私がやろうとしていることをどのように達成できますshowwordか、xargsを関数で動作させるにはどうすればよいですか?
16 bash  xargs  function 

3
既存の関数と同じ名前でPATHで実行可能ファイルを実行する
実行可能ファイルをシャドウイングし、その引数または出力を微調整する関数を定義することがあります。したがって、関数は実行可能ファイルと同じ名前を持ち、関数を再帰的に呼び出さずに関数から実行可能ファイルを実行する方法が必要です。たとえば、fossil diffthrough の出力を自動的に実行するにはcolordiff、次less -Rを使用します。 function fossil () { local EX=$(which fossil) if [ -z "$EX" ] ; then echo "Unable to find 'fossil' executable." >&2 return 1 fi if [ -t 1 ] && [ "$1" == "diff" ] ; then "$EX" "$@" | colordiff | less -R return fi …
16 bash  path  function 

1
関数パラメーターによって提供されるコマンドを実行する
パラメーターによってメソッドに提供されるコマンドを実行するbashスクリプトで関数メソッドを作成しようとしています。 次のような意味: special_execute() { # Some code # Here's the point where the command gets executed $@ # More code } special_execute echo "abc" 私はすでに私が試した$@、"$@"、$*、"$*"私はそれをどのように行うことができますか?


2
bashスクリプトで関数にパラメーターを渡す方法は?
多くの異なる変数を持つスクリプトから呼び出すことができる関数を書きたいです。いくつかの理由で、これを行うのに多くの問題を抱えています。例私が読んだことは常にグローバル変数を使用するだけですが、それは私が見ることができる限り私のコードをそれほど読みやすくしません。 使用例: #!/bin/bash #myscript.sh var1=$1 var2=$2 var3=$3 var4=$4 add(){ result=$para1 + $para2 } add $var1 $var2 add $var3 $var4 # end of the script ./myscript.sh 1 2 3 4 $1関数でなどを使用してみましたが、スクリプト全体が呼び出されたグローバルなものが必要になります。基本的に私が探しているようなものである$1、$2とそうではなく、関数のローカルコンテキストで。ご存じのように、関数は適切な言語で動作します。

3
Bashで関数本体を表示する
.bashrcファイルにいくつかの機能を設定しました。すぐに何かを参照するために、関数の実際のコードを表示するだけで実行しないようにします。 方法はありますか、関数定義を見ることができますか?
14 bash  function 


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