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

Bashコマンドシェル用に記述されたスクリプトに関する質問。エラー/構文エラーのあるシェルスクリプトについては、ここに投稿する前に、shellcheckプログラム(またはhttps://shellcheck.netのWeb shellcheckサーバー)で確認してください。Bashのインタラクティブな使用に関する質問は、スタックオーバーフローよりもスーパーユーザーで話題になる可能性が高くなります。

9
Condaがデフォルトでベース環境をアクティブ化しないようにするにはどうすればよいですか?
最近、Macにanaconda2をインストールしました。デフォルトでは、Condaは、新しいターミナルセッションを開いたときに基本環境をアクティブにするように構成されています。 Condaコマンドにアクセスしたい(つまり、初期化時にCondaが実行する$ PATHにCondaへのパスを追加したいので、問題ない)。 しかし、私は通常pythonでプログラムしていませんし、デフォルトでCondaに環境をアクティブ化させたくありません。 conda initプロンプトから最初に実行すると、Condaはmyに以下を追加します.bash_profile。 # >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$('/Users/geoff/anaconda2/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "/Users/geoff/anaconda2/etc/profile.d/conda.sh" ]; then . "/Users/geoff/anaconda2/etc/profile.d/conda.sh" else export PATH="/Users/geoff/anaconda2/bin:$PATH" fi …
235 bash  anaconda  conda 

5
画面に表示したままstdoutをパイプする方法は?(出力ファイルではありません)
画面に表示したまま、プログラムの標準出力をパイプ処理したいと思います。 簡単な例を示します(echoここでの使用は単に説明のためです): $ echo 'ee' | foo ee <-見たい出力 Teeがstdoutをファイルにコピーできることは知っていますが、それは私が望んでいることではありません。 $ echo 'ee' | tee output.txt | foo 私が試しました $ echo 'ee' | tee /dev/stdout | fooが、ティー出力/dev/stdoutがパイプされているので機能しませんfoo
234 bash  shell  pipe  output  stdout 

9
実行中のスクリーンセッションを一覧表示する方法は?
たくさんのサーバーがあり、その上でを使用して実験を行いscreenます。手順は次のとおりです。 ssh サーバーXXXへ 打ち上げ screen いくつかのタブで実験を開始する 切り離す screen サーバーから切断する 実験の実行中、sshすべてのサーバーにアクセスし、実行中のプロセスを一覧表示することにより(topまたはを使用してps)、どのサーバー上にあるかを簡単に見つけることができます。 ただし、実験が終了したら、スクリーンセッションを開いているサーバーを(出力を確認したり、再起動したりできるように)どのようにして見つけることができますか? PS:私の実験もその出力をファイルに出力します...しかし、これは私の質問のポイントではありません。

20
〜/ .composer / vendor / binディレクトリをPATHに配置する方法は?
私はUbuntu 14.04を使用していますが、Laravelをインストールするためのすべての可能な方法を試してみました。エラーメッセージは、私が試みるすべてのものにメッセージを送ります。私は現在、クイックスタートドキュメントの最初の方法、つまりLaravelインストーラーを試していますが、「ターミナルにLaravelコマンドを実行すると、Laravel実行可能ファイルが見つかるように~/.composer/vendor/binディレクトリを配置してください」PATHと表示されています。だから私の質問は、どうすればいいですか?これは簡単な質問かもしれませんが、私は本当にイライラしており、どんな助けにも感謝します。
232 bash  laravel  path 


14
bashから「グループ化」をシミュレートする最良の方法は?
IPアドレスを含むファイルがあり、各行に1つのアドレスがあるとします。 10.0.10.1 10.0.10.1 10.0.10.3 10.0.10.2 10.0.10.1 各IPアドレスがファイルに出現する回数をカウントするシェルスクリプトが必要です。上記の入力には、次の出力が必要です。 10.0.10.1 3 10.0.10.2 1 10.0.10.3 1 これを行う1つの方法は次のとおりです。 cat ip_addresses |uniq |while read ip do echo -n $ip" " grep -c $ip ip_addresses done しかし、それは実際には効率的ではありません。 どのようにbashを使用してこの問題をより効率的に解決しますか? (1つ追加する必要があります。私はそれがperlまたはawkから解決できることを知っています。これらの言語ではなく、bashのより良いソリューションに興味があります。) 追加情報: ソースファイルが5GBで、アルゴリズムを実行しているマシンが4GBであるとします。したがって、並べ替えは効率的なソリューションではなく、ファイルを複数回読み取ることもありません。 私はハッシュテーブルのようなソリューションが好きでした-誰でもそのソリューションに改善を提供できますか? 追加情報#2: たとえばperlのほうがずっと簡単なのに、なぜbashを使うのが面倒なのかと尋ねる人もいました。その理由は、私がこのperlを実行しなければならなかったマシンでは、私は利用できなかったからです。これは、私が慣れているほとんどのツールを持たないカスタムビルドのLinuxマシンでした。そして、それは興味深い問題だったと思います。 だから、質問のせいにせず、気に入らなければ無視してください。:-)
231 bash  scripting 


4
一時ディレクトリを作成するには?
私はを作成してtempfile削除し、ディレクトリとして再作成するために使用します。 tmpnam=`tempfile` rm -f $tmpnam mkdir "$tmpnam" 問題は、あるプロセスのX後rm -f X、直前にtempfileを誤って実行した場合、別のプロセスが同じ名前を取得する可能性があることmkdir Xです。

5
配列要素をBashの別の行に印刷しますか?
Bash配列の配列要素を別の行に出力するにはどうすればよいですか?これはうまくいきますが、確かにもっと良い方法があります: $ my_array=(one two three) $ for i in ${my_array[@]}; do echo $i; done one two three これを試してみましたが、うまくいきませんでした: $ IFS=$'\n' echo ${my_array[*]} one two three
229 arrays  bash 

3
Bashのファイルパス引数の最後のディレクトリ名/ファイル名を取得する
開発サーバーでホストされているSVNのコミット後フックを記述しようとしています。私の目標は、コミットされたプロジェクトのコピーを、サーバーでホストされているディレクトリに自動的にチェックアウトすることです。ただし、プロジェクトがホストされているのと同じサブディレクトリにチェックアウトするには、スクリプトに渡されたディレクトリ文字列の最後のディレクトリのみを読み取ることができる必要があります。 たとえば、SVNをプロジェクト「example」にコミットすると、スクリプトは最初の引数として「/ usr / local / svn / repos / example」を取得します。「/ server / root / example」にチェックアウトして変更がすぐに反映されるように、文字列の末尾から「例」だけを取り出して別の文字列と連結する必要があります。
228 linux  bash  shell  svn 

17
Bashで、コマンドまたはエイリアスに「Are you sure [Y / n]」を追加する方法を教えてください。
この特定のケースでは、Bashに確認を追加します 本気ですか?[はい/いいえ] Mercurialのhg push ssh://username@www.example.com//somepath/morepath場合、これは実際にはエイリアスです。それを実現するためにエイリアスに追加できる標準コマンドはありますか? その理由は、ということであるhg pushとhg out類似した音ができ、私が欲しいとき時々hgoutrepo、私はaccidentlly入力することhgpushrepo(両方とも別名です)。 更新:それが次のような別のコマンドを含む組み込みコマンドのようなものである可能性がある場合:confirm && hg push ssh://...それは素晴らしいでしょう... yesまたはnoを要求し、残りの場合は続行できるコマンドだけですyes。
228 bash  alias  confirmation 

19
`find`で.svnディレクトリを無視するにはどうすればよいですか?
私はよくfindコマンドを使用して、ソースコード全体を検索し、ファイルを削除します。厄介なことに、Subversionは各ファイルの複製を.svn/text-base/ディレクトリに保存しているため、単純な検索で大量の複製結果が得られます。たとえばuint、複数のmessages.hとmessages.cppファイルを再帰的に検索したいとします。 # find -name 'messages.*' -exec grep -Iw uint {} + ./messages.cpp: Log::verbose << "Discarding out of date message: id " << uint(olderMessage.id) ./messages.cpp: Log::verbose << "Added to send queue: " << *message << ": id " << uint(preparedMessage->id) ./messages.cpp: Log::error << "Received message with invalid SHA-1 hash: id " …
227 linux  find  bash  grep  svn 

8
プロセスが停止した場合にプロセスを再起動するbashスクリプトを作成するにはどうすればよいですか?
キューをチェックして各アイテムに対してアクションを実行するPythonスクリプトがあります。 # checkqueue.py while True: check_queue() do_something() 実行されているかどうかを確認し、実行されていない場合は起動するbashスクリプトを作成するにはどうすればよいですか。おおよそ次の疑似コード(またはおそらくそれは何かのようなことをする必要がありps | grepます): # keepalivescript.sh if processidfile exists: if processid is running: exit, all ok run checkqueue.py write processid to processidfile これをcrontabから呼び出します。 # crontab */5 * * * * /path/to/keepalivescript.sh
226 bash  scripting  cron 

3
bashスクリプト:引数がこの文字列と等しい場合、この文字列のような変数を定義します
私はbashスクリプトを実行していて、次のようにsource1 つの変数呼び出しと1つの配列を取得していますsamples。 source='country' samples=(US Canada Mexico...) ソースの数を増やしたいので(各ソースには独自のサンプルがあります)、これを行うためにいくつかの引数を追加しようとしました。私はこれを試しました: source="" samples=("") if [ $1="country" ]; then source="country" samples="US Canada Mexico..." else echo "try again" fi しかし、スクリプトを実行したときに機能source countries.sh countryしませんでした。何が悪いのですか?

8
gitリポジトリでパスワードを処理するためのベストプラクティスは何ですか?
Twitterにアクセスし、特定の状況でGrowl通知をポップアップ表示するために使用する小さなBashスクリプトを持っています。スクリプトを使用してパスワードを保存するのに最適な方法は何ですか? このスクリプトをgitリポジトリにコミットしてGitHubで利用できるようにしたいのですが、これを実行している間、ログイン/パスワードをプライベートに保つための最良の方法は何なのでしょうか。現在、パスワードはスクリプト自体に格納されています。古いコミットにはすべてパスワードが含まれているため、プッシュする直前に削除することはできません。パスワードなしで開発することはできません。パスワードを外部の構成ファイルに保存する必要があると思いますが、何かを試す前に、これを処理するための確立された方法があるかどうかを確認したいと思いました。
225 git  bash  security  github  passwords 

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