問題タブ [bash-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
272 参照

bash - Bash 関数ですべての引数の部分範囲を使用する

Bashスクリプトにこの関数があります:

ご覧のとおり、引数$1とで何か特別なことをしています$2。次に、残りのすべてをコマンドの最後にハックして追加します。それらは に移動し$9ますが、実際にはすべて追加する必要があります。

これにはもっと簡単な方法があるはずですか?

0 投票する
2 に答える
14104 参照

bash - Bash 関数の引数が「コマンドが見つかりません」というエラーを返す

新しいjekyll投稿を作成するために、bashスクリプトにこの機能があります。しかし、コマンドが見つからないという引数を返します。スクリプトは次のとおりです。

しかし、実行しようとすると、次のように返されます。

引数をコマンドとして実行しようとしているようです。

私もこれを試してみましたが、同じ結果が得られました

誰が私が間違っているのか教えてもらえますか?

0 投票する
1 に答える
132 参照

bash - Bashの関数は、引用符で囲まれた引数を分解してコマンドを呼び出しますか?

Bashに関数があるとしましょう:

llのような作品を作ることですls -l。ほとんどの場合、うまくいきますが、

name のファイルに対して機能しますha haが、

と見なされるため、失敗します。

これを機能させる方法はありますか?私たちはそれを成し遂げることができたと思います

( は と"$@"は異なり、"$*"個々"$@"に引用されていることを意味し、 while"$*"はすべて 1 つの文字列で引用されていることを意味します)

しかし、実際には機能しますll -t "ha ha"ls -l "-t" "ha ha"、ちょっと奇妙で、場合によっては故障する可能性があるかどうかはわかりません。

それを機能させる別の方法はありますか、そして別のことは、関数で考えcommand ls -l "$@"ls -l "$@"同じですか?(commandプログラムを直接実行し、再帰の発生を防ぐために可能なbash関数を呼び出さないだけですか?)

0 投票する
3 に答える
8604 参照

bash - サブシェルから値を返し、ローカル変数に出力する

説明できない奇妙な動作を見つけました。次のコードは正常に動作します。

私が期待する価値を得ることを意味します:

local変数に定義を追加するとすぐに:

私は次のようになります:

質問:なぜですか? 何が起きたの?サブシェルからlocal変数への出力をキャッチして、サブシェルの戻り値を確実にチェックできますか?

PS :prepare-archiveメイン シェル スクリプトで呼び出されます。1 つ目exitexitfromcheck-spec-file関数、2 つ目は fromprepare-archive関数です。この関数自体はメイン シェル スクリプトから実行されます。check-spec-filebyから値を返しexit 1、この値を に渡しますexit $?。したがって、それらは同じであるべきだと思います。

0 投票する
2 に答える
4028 参照

bash - 中括弧の代わりに括弧を使用してbash関数本体を定義する

このスクリプトは、括弧付きのbash関数と中括弧付きのbash関数の定義を示しています。括弧は、関数本体がサブシェルとして実行されるため、関数「ローカル」で作成された環境変数を作成するという優れた効果があります。出力は次のとおりです。

問題は、これが関数を定義するための構文として許可されているかどうかです。

0 投票する
3 に答える
1716 参照

linux - find から pdf ビューアーに出力をパイプする方法

こんにちはバッシュスーパーヒーロー、

findからの出力を aa pdf ビューアーにパイプする単純な bash 関数を作成しようとしていますが、同様ですがevinceに限定されています。

上記の関数はビューアを開きますが、目的のファイル/パスは表示されません。最終的に、 findから出力されたすべての pdf を表示したいと思います。次のような単純な検索コマンド:

次のような出力を作成します。

次に、これら 2 つの pdf ファイルをビューアーに表示します。

アイデアや提案はありますか?それが役立つ場合、私はLinux Mintを使用しています。よろしくお願いします!

0 投票する
1 に答える
151 参照

bash - grepall を実装する .bashrc 関数

私は2つのbash関数catallとgrepallを持っています

catall正常に動作し、最初にファイル名が出力され、次にコンテンツと新しい行が出力されたすべてのファイルを cat します。

しかし、grepall機能しません。同じことを行う必要がありcatallますが、ファイルのコンテンツにgrepステージを使用します

$2サブされない理由

このgrepallを機能させることはできますか?

0 投票する
1 に答える
55 参照

bash - replaceInAll スクリプトは cli で動作しますが、.bashrc 関数としては動作しません

この .bashrc 関数は、コマンド ラインで動作します。これは、bash の優れた 1 行です。

しかし、それをbashプロファイルに移動すると、機能しなくなりますか?

replaceInAll (){ find . -name "$1" -print | xargs sed -i 's/$2/$3/g' }

私はこれで何がうまくいかないのですか?