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

Bashは、GNUプロジェクトのUnixライクなオペレーティングシステム用の無料のシェルです。

1
バックグラウンドプロセス(トラップ)に信号を送信できるのはどのくらい早いですか?
サブシェルで2番目のスクリプトを実行するスクリプトがあります。2番目のスクリプトに信号を送信できる最も早いのは何ですか? script1: ./script2 & kill -SIGCONT $! script2: echo "~~ ENTRY" trap 'SUSPEND=false' SIGCONT SUSPEND=true while $SUSPEND; do; sleep 1; done echo "~~ EXIT" これは機能せず、ターミナルは「サスペンド」モードでハングします。私の推測では、killscript2を実行した後すぐに呼び出すため、script2のトラップには解析する時間がないため、何も起こりません-競合状態。 では、子プロセスにシグナルを送信できる最速の時間は何ですか-確実にトラップされますか?
1 bash  shell  signal 

2
シェルでの感嘆符のエスケープ(if / thenコンストラクトの否定)?
私はこれをシェルで直接使用して、スクリプトの結果をテストすることがよくあります。 $ if [ -d mydirectory ] ; then echo YES ; fi YES ただし、感嘆符を使用して否定を使用する場合、失敗します(実際には失敗しませんが、キーボード入力を待機している複数行モードになり、Ctrl-Cを使用してエスケープする必要があります): $ if [ ! -d makehuman ] ; then echo YES ; if > > ^C $ if [ \! -d makehuman ] ; then echo YES ; if > > ^C 否定感嘆符をシェルで直接使用するにはどうすればよいですか?

1
bashの文字列の中央部分の削除と交換
私はいくつかの文字列を持っています: Central and Western</td><td><a href="javascript:pop1('major-housing-estate/30006.html');" title="Kwun Lung Lau">Kwun Lung Lau Central and Western</td><td><a href="javascript:pop1('major-housing-estate/61782.html');" title="The Merton">The Merton Eastern</td><td><a href="javascript:pop1('major-housing-estate/10038.html');" title="Fung Wah Estate">Fung Wah Estate Wong Tai Sin</td><td><a href="javascript:pop1('major-housing-estate/20134.html');" title="Tsz Oi Court">Tsz Oi Court そして、中間部分を取り外して交換したい: から: </td><td><a href="javascript: に: "> この部分全体をキャラクターに置き換えたいです: ; 私は次のようになるために文字列が必要です: Central and Western;Kwun Lung Lau Central and Western;The …
1 bash  string 

2
$ BASH_VERSIONおよび新規ユーザーに関するUbuntuの問題
Ubuntuデスクトップの端末からSSH経由で新しいUbuntu VPSにログインしています。新しいユーザーadamを作成しました。これをsudoグループに追加したので、常にrootとしてログインする必要はありません。rootとしてログインすると、すべてが期待どおりになりますが、adamとしてログインする場合を除き、$BASH_VERSION環境変数にいくつかの問題があります。 デフォルト.profileと.bashrcファイル内で何も変更していないので、すべてのデフォルト設定が必要です。以下を.profile含む条件がありますが、私は気付きました.bashrc: if [ -n "$BASH_VERSION" ]; then $BASH_VERSIONCLからエコーする場合を除き、何も返されず、空の行が返されます。ここで何かが本当に狂っているように見えますが、それは私の知識を少し超えています。 便利な場合は、ユーザーの作成に使用したものを次に示します。 useradd -d /home/adam -m adam sudo passwd adam usermod -a -G sudo adam
1 bash  user  version 

1
スクリプトコマンドを起動してターミナルスクリプトに渡す
ユーザーの入力を待つスクリプト(コマンドを入力してからリターンを押すなど)を持っています。それは永遠にループします。たとえば、エントリがうるう年か、Minecraftサーバーかをユーザーに通知します。ユーザーとして次のように私はそれを取得します: open a.command ユーザーがそのスクリプトにエントリを入力するように定期的に動作するスクリプトを作成しようとしています。 私はこのようなもので運がありません: i=5; while [ $i -gt 0 ]; do i=$(( $i - 1 )); sleep 10; # do this once every 10 seconds for i times {{send text to the script a.command in the newly opened window}} done & open a.command > a.out; a.outに出力する必要はありません。結果をそのファイルに保存するだけでした。
1 macos  mac  bash  terminal 

1
ワイルドカードパスで何かをgrepする方法は?
いくつかのRailsアプリでGemfileをgrepしたいです。しかし、各Railsアプリには多くのブランチがあり、そのうち最新のブランチ名は「メイン」と言います。 構造は次のようなものです。 workspace rails-apps rails-app1 main feature-branch rails-app2 main feature-branch feature-branch2 だから私はこのようなことをしています: grep -R "rails" /workspace/rails-apps/ --include="Gemfile" しかし、これを行うと、私が望んでいないすべてのブランチのすべてのGemfileを把握します。mainブランチでGemfileのみをgrepする必要があります。 このようなもの: grep -R "rails" /workspace/rails-apps/*/main --include="Gemfile" しかし、それは動作しません。
1 linux  bash  grep 

2
Unix / Linuxでの./の意味[複製]
この質問にはすでに答えがあります: ./ in BASH 4 とは何ですか これは間違っているように見えるかもしれませんが、。/を使用すると、基本的にLinux / Unix環境でスクリプトを「BASH」することを知っています。Windowsユーザーの場合、これはコマンドプロンプトから.exeファイルを実行するのと同じです。ただし、。/を使用する理由がわかりません。 これは、。/が短く「RUN」を意味するのか、それとも「./」がUNIXのような環境で特定の意味を持っているからでしょうか? PS cygwinでは、。/プレフィックスを使用してバッチファイルを実行できることを知っています。
1 bash  unix 

1
ツリーの最下部に到達するコマンド
一番下のディレクトリのファイルパスを返すLinuxコマンドがありますか。 次のコマンドを試しました。 find /home/Alison/workspace/DirLevel1/DirLevel2/DirLevel3/DirLevel4/DirLevel5/DirLevel6/DirLevel7/ -type d そして tree -dfi /home/Alison/workspace/DirLevel1/DirLevel2/DirLevel3/DirLevel4/DirLevel5/DirLevel6/DirLevel7/ これらのコマンドは両方とも返します: /home/Alison/workspace/DirLevel1/DirLevel2/DirLevel3/DirLevel4/DirLevel5/DirLevel6/DirLevel7 /home/Alison/workspace/DirLevel1/DirLevel2/DirLevel3/DirLevel4/DirLevel5/DirLevel6/DirLevel7/generic /home/Alison/workspace/DirLevel1/DirLevel2/DirLevel3/DirLevel4/DirLevel5/DirLevel6/DirLevel7/admin /home/Alison/workspace/DirLevel1/DirLevel2/DirLevel3/DirLevel4/DirLevel5/DirLevel6/DirLevel7/logandnetworkactivity /home/Alison/workspace/DirLevel1/DirLevel2/DirLevel3/DirLevel4/DirLevel5/DirLevel6/DirLevel7/qvm /home/Alison/workspace/DirLevel1/DirLevel2/DirLevel3/DirLevel4/DirLevel5/DirLevel6/DirLevel7/qvm/a /home/Alison/workspace/DirLevel1/DirLevel2/DirLevel3/DirLevel4/DirLevel5/DirLevel6/DirLevel7/reports あなたが見ることができるように: /home/Alison/workspace/DirLevel1/DirLevel2/DirLevel3/DirLevel4/DirLevel5/DirLevel6/DirLevel7/qvm /home/Alison/workspace/DirLevel1/DirLevel2/DirLevel3/DirLevel4/DirLevel5/DirLevel6/DirLevel7/qvm/a 私はちょうど一番下のディレクトリが欲しいだけで/qvm/なく、戻ってきてい/qvm/aます。
1 linux  bash 

0
Java EE 7 SDKアップデート1のインストールに関する問題
私がインストールしたJava (jdk 1.8)としJAVA_HOME、今、私がインストールしようとしている、Java EE 7 SDK私はからそれをダウンロードしたここに。Oracleダウンロードページには、Universal Zip Installerタイプファイルが表示され、ダウンロードおよび解凍されます。readmeファイル内の指示に従って。 GlassFishを起動するには、GlassFishがあるディレクトリに移動して、次のように入力します。 On Unix: glassfish4/glassfish/bin asadmin start-domain コマンドを実行すると、bashは次のようなエラーを返しました。 bash: glassfish4/glassfish/bin: is a directory インストールするためのファイルUniversal Zip Installerを見つけたいくつかのチュートリアルを見ていたので、私はファイルに完全に懐疑的でした。.shJava EE だから、どういうわけか私はここでファイルをダウンロードするためのリンクを見つけ、ファイルをダウンロード.shし、コマンドを使用して実行しようとしました。 ./java_filename.sh 戻ってきた bash: permission denied message sudo -s java_filename.sh sudo ./java_filename.sh 戻ってきた bash: Command not found 私が使用OS X Yosemite 10.10,しているものは、この種の問題に遭遇しましたか?その場合、Java EE 7のインストール方法(glassfishサーバーを使用)。

1
awkでbashループの効率を上げる
1つのファイルの2番目の列から抽出されたテキストを使用して、かなり大きなテキストファイル(> 300,000行)を作成し、各行の先頭にテキストを追加して、最後に新しいファイルに書き出します。 次のwhileループがあり、正常に動作しています。ただし、実行に時間がかかり、実行ごとに数分かかります。私は、もっと速いawkのより良いレシピ/方法があると思います。誰でもより速い方法を提案できますか。 SOURCEFILEの例 useless9 important1 more useless stuff useless8 important2 more useless stuff useless7 important3 more useless stuff useless6 important4 more useless stuff ソースファイルからテキストを抽出し、最終結果ファイルを出力します。 while read line; do mytext=`echo $line | awk -v RS='\r\n' '{print $2}'` echo "$PrePattern $mytext $PostPattern" >> $OUTFILE done < $SOURCEFILE OUTFILE PrePattern text important1 …
1 bash  speed  awk 

1
「oh-my-zsh」SVN補完を無効にする
私はZshバージョン4.3.11をoh-my-zshフレームワークとともに使用してい ます。 「oh-my-zsh」と組み合わせると、Zshは、コマンド中にTabキーが押されると、SVN(およびその点でGit)コマンドを自動補完しようとします。明らかに背後で解析マジックを実行するため、巨大なリポジトリでSVNコマンドを自動補完すると、大幅な遅延が発生します。 svn add a[TAB] * ~2-3 second delay * svn add apps/ これは私を端に追いやり、Zshに賞賛しか残さずに数か月後、特定のリポジトリでシェルを使用できないのはばかげているので、一時的にBashに戻りました。 注: ここには2つの追加要因があり、それらの重要性は不明ですが、とにかくそれらをリストします。 これはSSHで行われます 通常のファイル名の自動補完は完全に瞬時です。SVNコマンド中のファイル名の自動補完のみが遅れています。
1 bash  svn  zsh  autocomplete 

1
実行中のプロセスをbashのバックグラウンドに移動する単一のショートカット[複製]
この質問にはすでに答えがあります: バックグラウンドでプロセスを続行するには、1回のキープレスでCtrl-Zとbgを実行するにはどうすればよいですか? 4つの答え 私が議論し、それを最初に懸濁してバックグラウンドにプロセスを移動する方法を知っているこことここに: タイプCtrl+Z いずれかを実行し%&たりbg ただし、プロセスを過度に中断せずにこれを行いたいと思います(もう一度起動するために入力している間、長時間停止しないでください)。たとえば、オーディオを再生していて、干渉したくない場合。実行中に実際に移動する方法はないようですが(これとこれを参照)、上記の両方の操作を1ステップで実行する単一のショートカットを喜んで受け入れます。 同様の質問がここにありますが、zshについて:1つのキープレスでCtrl-Zとbgを実行してプロセスをバックグラウンドで続行するにはどうすればよいですか?

1
検索:外付けハードドライブを検索から除外します
外付けハードドライブを除く、コンピューター全体で検索コマンドを実行する方法はありますか?findコマンドを使用して、(ディレクトリの最上部から)のように、アンインストールされたソフトウェアから残ったジャンクを検索しました。 sudo find -iname . "*badexample*" 外付けドライブに探しているものは何もないと確信しています。検索を実行する前に単純に接続を解除できると思いますが、bashでそのような除外をどのように指定するのか興味があります。また、ディレクトリ内の外部ドライブの場所についても少し混乱しています。/ Volumesにはドライブを指すエイリアスが含まれていますが、(Finderで[情報を見る]を使用して)ドライブ自体を指しているように見えます。
1 bash  find 


1
「Windows上のUbuntuでのBash」でのNTFS SDカードのマウント(またはリンク)
Anniversary Update以降、Windows 10に追加されたUbuntu Bashを使用するのが好きです。通常は正常に動作し、LinuxワークステーションとWindowsラップトップを切り替えても作業を続けることができます。私は通常、Dropbox経由でファイルを共有/同期します。これは(私のラップトップ上で)Windows bashからWindowsファイルシステムからアクセスできます/mnt/c/Users/Me/Dropbox。 ただし、タブレット/ネットブックハイブリッド(Windows 10)でも同じことができるようにしたいと考えています。ここでは、元のディスク容量が限られているため、NTFS形式の128GB SDカードを(ドライブ「D:」として)追加し、WindowsのDropboxフォルダーをそこに同期するように設定します。これはWindowsのBashで認識されていません(/mntカードにNTFSでフォーマットされている限りこれを読むことができるはずですが、ドライブ "c"のみが表示されます)。 また、SDカードからC:へのソフトリンク(ジャンクション)をWindowsで作成しようとしました(今読んでいるように、これらはWindows上のBashでもサポートされています)が、/mnt/cBashから検索すると表示されません。 これは、DropboxフォルダーをC:に移動せずに修正できますか?

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