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

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

7
bash-whichコマンドからの結果をcdにパイプする方法
whichコマンドの結果をにパイプするにはどうすればよいcdですか? これは私がやろうとしていることです: which oracle | cd cd < which oracle しかし、それらのどれも機能しません。 これを実現する方法はありますか(もちろんコピー/貼り付けではありません)? 編集:考え直してみると、宛先ファイルはフォルダ/ディレクトリではないため、このコマンドは失敗します。 だから私は今、末尾の「/ oracle」部分を取り除くためのより良い方法を考えて考えています(sedまたはawk、あるいはPerlさえ):) 編集:さて、それは私が最終的に得たものです: cd `which oracle | sed 's/\/oracle//g'`
87 linux  bash  shell  cd 

20
findとsedを使用してファイルの名前を再帰的に変更します
たくさんのディレクトリを調べて、_test.rbで終わるすべてのファイルの名前を_spec.rbで終わるように変更したいと思います。これは、bashの使い方がまったくわからなかったので、今回は、それを釘付けにするために少し努力したいと思いました。私はこれまでのところ不足していますが、私の最善の努力は次のとおりです。 find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \; 注意:execの後に余分なエコーがあるので、テスト中にコマンドを実行する代わりに出力します。 実行すると、一致した各ファイル名の出力は次のようになります。 mv original original つまり、sedによる置換は失われました。トリックは何ですか?
87 bash  scripting  sed  find  replace 

6
文字列変数のN番目の単語
Bashでは、変数が保持する文字列のN番目の単語を取得したいと思います。 例えば: STRING="one two three four" N=3 結果: "three" どのBashコマンド/スクリプトがこれを行うことができますか?
87 bash 

8
Bashを使用して日付をループする方法は?
私はそのようなbashスクリプトを持っています: array=( '2015-01-01', '2015-01-02' ) for i in "${array[@]}" do python /home/user/executeJobs.py {i} &> /home/user/${i}.log done ここで、2015-01-01から2015-01-31までの日付の範囲をループしたいと思います。 Bashで達成する方法は? 更新: 便利:前の実行が完了する前にジョブを開始しないでください。この場合、executeJobs.pyが完了すると、bashプロンプト$が返されます。 たとえばwait%1、ループに組み込むことはできますか?
87 bash  loops  date 




4
私の環境変数は何ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、話題のスタックオーバーフローのため。 7年前に閉鎖されました。 この質問を改善する bashで自分の環境変数を調べたいと思います。それらはどこかに保管されていますか?
86 linux  bash  shell  ubuntu 

16
プロセスの最大数でBashスクリプトを並列化する
Bashにループがあるとしましょう: for foo in `some-command` do do-something $foo done do-somethingCPUにバインドされており、光沢のある4コアプロセッサがあります。do-something一度に4秒まで走れるようにしたいと思います。 素朴なアプローチは次のようです。 for foo in `some-command` do do-something $foo & done これが実行され、すべて do-somethingを一度に秒が、カップルの欠点があり、主に行う-何かも行っていくつかの重要なI / Oがあり、そのすべてのビットを遅くするかもしれません一度に。もう1つの問題は、このコードブロックがすぐに返されるため、すべてdo-somethingが終了したときに他の作業を行う方法がないことです。 常にXがdo-something同時に実行されるように、このループをどのように記述しますか?
86 bash 

9
スクリプトを使用して、特定の作業ディレクトリでGit Bashウィンドウを起動するにはどうすればよいですか?
スクリプト(BashまたはWindowsバッチ)を使用して、指定した作業ディレクトリで新しいGit Bashウィンドウを起動するにはどうすればよいですか? 私の目標は、それぞれが異なる作業ディレクトリに設定された単一のスクリプトから複数のGitBashウィンドウを起動することです。このようにして、Git Bashウィンドウを開いて各ウィンドウを正しい作業ディレクトリに移動する代わりに、コンピューターを起動した後すぐに作業を開始できます。 この質問のようにデフォルトの作業ディレクトリを変更する方法を尋ねているのではなく、スクリプトから異なる作業ディレクトリで1つ以上のターミナルウィンドウを起動する方法を尋ねています。

6
sudo catが許可を拒否したのに、sudo vimが正常に機能するのはなぜですか?
archのpacman.confファイルへのリポジトリソースの追加を自動化しようとしていますがecho、シェルスクリプトでコマンドを使用しています。ただし、次のように失敗します。- sudo echo "[archlinuxfr]" >> /etc/pacman.conf sudo echo "Server = http://repo.archlinux.fr/\$arch" >> /etc/pacman.conf sudo echo " " >> /etc/pacman.conf -bash: /etc/pacman.conf: Permission denied /etc/pacman.confにvimを使用して手動で変更を加えた場合、 sudo vim /etc/pacman.conf でvimを終了すると:wq、すべてが正常に機能し、「許可が拒否されました」という苦情なしにpacman.confが手動で更新されました。 なぜそうなのですか?そして、どうすればsudo echo仕事に取り掛かることができますか?(ところで、私sudo catも使ってみましたが、許可が拒否されて失敗しました)
86 bash  shell  echo  cat 

9
Bashでテーブルの列を整列するにはどうすればよいですか?
表形式のテキストを出力したいのですが。私がやろうとしたのは、配列の要素を「\ t」でエコーすることでしたが、位置がずれていました。 私のコード for((i=0;i<array_size;i++)); do echo stringarray[$i] $'\t' numberarray[$i] $'\t' anotherfieldarray[$i] done; 私の出力 a very long string.......... 112232432 anotherfield a smaller string 123124343 anotherfield 必要な出力 a very long string.......... 112232432 anotherfield a smaller string 123124343 anotherfield
86 bash  echo 

10
bashを呼び出し、新しいシェル内でコマンドを実行してから、ユーザーに制御を戻す方法は?
これは本当に単純か本当に複雑である必要がありますが、それについて何も見つかりませんでした...新しいbashインスタンスを開いて、その中でいくつかのコマンドを実行し、その中のユーザーに制御を戻そうとしています。同じインスタンス。 私は試した: $ bash -lic "some_command" ただし、これはsome_command新しいインスタンス内で実行されてから閉じます。開いたままにしておきたい。 回答に影響を与える可能性のあるもう1つの詳細:これを機能させることができれば.bashrc、エイリアスとして使用するので、alias実装のボーナスポイントになります!
86 shell  bash 

2
xargsを使用してプログラムを並行して実行する
私は現在、現在のスクリプトを持っています。 #!/bin/bash # script.sh for i in {0..99}; do script-to-run.sh input/ output/ $i done xargsを使用して並行して実行したいと思います。私が試してみました script.sh | xargs -P8 ただし、上記の実行は一度に1回だけ実行されます。-n8でも運がありません。スクリプトのforループで実行される行の最後に&を追加すると、スクリプトを一度に99回実行しようとします。一度に8つだけ、合計100までループを実行するにはどうすればよいですか。

15
異なる行のファイル内の複数の文字列のgrep(つまり、行ベースの検索ではなくファイル全体)?
私は言葉を含むファイルをgrepしたいDansk、Svenskaまたは Norsk(この後、文字列が含まれていることの情報を持っている私は本当にだけなど、私のワンライナーは少しさらに進ん)使用可能なリターンコードで任意の行に。 私はこのような行を含む多くのファイルを持っています: Disc Title: unknown Title: 01, Length: 01:33:37.000 Chapters: 33, Cells: 31, Audio streams: 04, Subpictures: 20 Subtitle: 01, Language: ar - Arabic, Content: Undefined, Stream id: 0x20, Subtitle: 02, Language: bg - Bulgarian, Content: Undefined, Stream id: 0x21, Subtitle: 03, Language: cs - Czech, Content: Undefined, Stream …
85 bash  awk  grep 

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