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

「シェル」という用語は、UnixおよびLinuxオペレーティングシステムに最も頻繁に関連付けられている、テキストベースの対話型コマンドインタープリターの一般的なクラスを指します。シェルスクリプトに関する質問については、「bash」、「powershell」、「ksh」などのより具体的なタグを使用してください。特定のタグがない場合は、ポータブル(POSIX準拠)ソリューションを想定する必要がありますが、「posix」を追加するか、代わりに「sh」を使用することをお勧めします。

16
シェルコマンドを実行して出力をキャプチャする
シェルコマンドを実行してその出力を返す関数を書きたい エラーメッセージでも成功メッセージでもを文字列として。コマンドラインで取得したのと同じ結果を得たいだけです。 そのようなことをするコード例は何でしょうか? 例えば: def run_command(cmd): # ?????? print run_command('mysqladmin create test -uroot -pmysqladmin12') # Should output something like: # mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
908 python  shell  subprocess 

30
1行に1つずつ整数を合計するシェルコマンド?
(入力として)複数行のテキストを受け入れ、各行に単一の整数を含み、これらの整数の合計を出力するコマンドを探しています。 背景として、タイミング測定を含むログファイルがあります。関連する行のgreppingと少しのsed再フォーマットによって、そのファイルにすべてのタイミングをリストできます。合計を計算したいと思います。最終的な合計を行うために、この中間出力を任意のコマンドにパイプすることができます。私はexpr以前からずっと使用してきましたが、RPNモードで実行しない限り、これで対処できるとは思えません(それでもトリッキーです)。 整数の合計を取得するにはどうすればよいですか?
867 shell 

12
#を入れましょうか!(シバン)Pythonスクリプトで、それはどのような形式を取るべきですか?
Pythonスクリプトにシバンを入れるべきですか?どんな形で? #!/usr/bin/env python または #!/usr/local/bin/python これらは同等に移植可能ですか?最も使用されるフォームはどれですか? 注:竜巻のプロジェクトはシェバングを使用しています。一方、 Djangoプロジェクトはそうではありません。



27
特定のファイル/フォルダーを除いてtarディレクトリへのシェルコマンド
アーカイブから特定のファイル/フォルダーを除外することをサポートする単純なシェルコマンド/スクリプトはありますか? バックアップする必要のない非常に大きなファイルが多数あるサブディレクトリを使用してアーカイブする必要があるディレクトリがあります。 完全なソリューションではありません: tar --exclude=PATTERNコマンドは、指定されたパターンと除外これらのファイルと一致しますが、私は特定のファイル&フォルダを無視する(完全なファイルパス)、そうでない場合は、有効なファイルが除外される可能性がありますが必要です。 また、findコマンドを使用してファイルのリストを作成し、アーカイブしたくないファイルを除外してtarにリストを渡すこともできますが、これは少量のファイルに対してのみ機能します。何万人もいます。 唯一の解決策は、除外するファイル/フォルダーのリストを含むファイルを作成し、次にrsync with --exclude-from=fileを使用してすべてのファイルをtmpディレクトリにコピーし、次にtarを使用してそのディレクトリをアーカイブすることであると考え始めています。 誰かがより良い/より効率的なソリューションを考えることができますか? 編集:Charles Maのソリューションはうまく機能します。重要なのは、tarコマンドの先頭に--exclude='./folder' 必ず配置する必要があることです。完全なコマンド(最初にcdを実行するため、バックアップはそのディレクトリに対して相対的です): cd /folder_to_backup tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .
811 linux  shell  archive  tar 

10
2つのディレクトリツリーがある場合、どのファイルがコンテンツによって異なるかをどのようにして見つけることができますか?
2つのディレクトリツリーの違いを見つけたい場合は、通常は次のように実行します。 diff -r dir1/ dir2/ これにより、対応するファイル間の違いが正確に出力されます。内容が異なる対応ファイルのリストを取得したいだけです。これは単にコマンドラインオプションをに渡すだけのことdiffだと思いましたが、マニュアルページには何も見つかりませんでした。 助言がありますか?
786 linux  bash  shell  unix  diff 

22
特定のファイルをgrepしないようにするには、grep --exclude /-include構文を使用します
foo=ディレクトリツリーのテキストファイルで文字列を探しています。それは一般的なLinuxマシン上にあり、私はbashシェルを持っています: grep -ircl "foo=" * ディレクトリには、 "foo ="に一致する多くのバイナリファイルもあります。これらの結果は関連性がなく、検索が遅くなるため、grepでこれらのファイル(主にJPEGおよびPNG画像)の検索をスキップするようにします。どうすればいいですか? --exclude=PATTERNと--include=PATTERNオプションがあることはわかっていますが、パターンの形式は何ですか?grepのmanページにはこう書かれています: --include=PATTERN Recurse in directories only searching file matching PATTERN. --exclude=PATTERN Recurse in directories skip file matching PATTERN. 上の検索grepを含める、含め除外のgrep、除外GREPおよび変異体は、関連する何かを見つけることができませんでした 特定のファイルでのみgrepを実行するより良い方法がある場合は、それで十分です。問題のあるファイルを移動することはできません。特定のディレクトリだけを検索することはできません(ディレクトリ構造はすべての場所にあり、非常に混乱しています)。また、何もインストールできないため、一般的なツール(grepや推奨されるfindなど)を使用する必要があります。

13
gitリポジトリの行数を数える
gitリポジトリ内のすべてのファイルに存在する行の総数をどのようにカウントしますか? git ls-files gitが追跡するファイルのリストを表示します。 catこれらすべてのファイルに対するコマンドを探しています。何かのようなもの git ls-files | [cat all these files] | wc -l
766 bash  git  shell  line-count 

30
シェルスクリプトで「cd」が機能しないのはなぜですか?
現在のディレクトリをプロジェクトディレクトリに変更する小さなスクリプトを書こうとしています。 #!/bin/bash cd /home/tree/projects/java このファイルをprojとして保存しchmod、で実行権限を追加して、にコピーしました/usr/bin。私がそれを次のように呼ぶと、 proj何もしません。何が悪いのですか?
766 linux  shell 



12
連続ストリームを「grep」する方法は?
grep連続ストリームで使用することは可能ですか? 私が言っているのは一種のtail -f <file>コマンドですが、grep私が興味を持っている行だけを保持するために出力を使用しています。 私は試しましたtail -f <file> | grep patternが、それが完了するのはgrep一度しか実行できないようtailです、つまり絶対に実行できないようです。
729 linux  bash  shell  grep  tail 

21
Bashで部分文字列を抽出する
形式someletters_12345_moreleters.extでファイル名を指定して、5桁を抽出して変数に入れたいと思います。 つまり、要点を強調するために、x文字のファイル名と、両側に1つの下線で囲まれた5桁のシーケンスと、x文字の別のセットがあります。5桁の数字を変数に入れたいのですが。 これを実現できるさまざまな方法に非常に興味があります。
728 string  bash  shell  substring 

7
bashスクリプトでset -eはどういう意味ですか?
Debianアーカイブ(.deb)ファイルからパッケージが解凍される前にスクリプトが実行するこのpreinstファイルの内容を調査しています。 スクリプトには次のコードがあります。 #!/bin/bash set -e # Automatically added by dh_installinit if [ "$1" = install ]; then if [ -d /usr/share/MyApplicationName ]; then echo "MyApplicationName is just installed" return 1 fi rm -Rf $HOME/.config/nautilus-actions/nautilus-actions.conf rm -Rf $HOME/.local/share/file-manager/actions/* fi # End automatically added section 私の最初のクエリは行についてです: set -e スクリプトの残りの部分はかなり単純だと思います。Debian/ Ubuntuパッケージマネージャーがインストール操作を実行しているかどうかをチェックします。インストールされている場合は、アプリケーションがシステムにインストールされたばかりかどうかを確認します。含まれている場合、スクリプトは「MyApplicationName is is …
713 linux  bash  shell  sh 

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