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

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

6
Bashでアルファベットをループする
私がしたいmvディレクトリに「X」「X」で始まるすべてのファイル。何かのようなもの: mv path1/x*.ext path2/x そして、すべてのアルファベット文字a、...、zに対してそれを行います 'x'がアルファベットをループするbashスクリプトを作成するにはどうすればよいですか?
82 bash  loops  for-loop 

5
Dockerの実行がプログラムで成功したかどうかを検出する方法は?
非常に単純なbashスクリプトを作成して、コンテナーがまだビルドされて正しく起動していることと、内部のアプリがリクエストに応答していることをすばやく確認します。 docker runコンテナをバインドしようとしているポートがすでに割り当てられているなどの理由で、失敗することがあります。しかし、これが発生した場合、docker runの終了コードはまだ0であるため、終了コードを使用できません。コンテナが正しく起動したことをプログラムで確認するにはどうすればよいですか? 私が検討している解決策は次のとおりです。 エラーの出力を解析します docker ps コンテナが実行されているかどうかを確認する しかし、これらは両方とも少しやり過ぎで醜いようです。docker run成功したかどうかを確認するためのより良い方法がありませんか?
82 bash  docker 

5
gitエイリアス内にbashスクリプトを直接埋め込む方法
次のbashシェルコードを埋め込むことはできますか? for name in $(git diff --name-only $1); do git difftool $1 $name & done gitエイリアスの作成に直接: git config --global alias.diffall ***my-bash-code-here*** これは、SOに関する以前の質問/回答から導き出されたもので、コードを.shファイルに入れてから、ファイルのエイリアスを作成しました。 git config --global alias.diffall '!sh diffall.sh' しかし、単純さを求める終わりのない探求では、ファイルをスキップしてコードをエイリアスに直接挿入する方法が必要ですか?フォーマットがわからない...
82 git  bash  shell  alias 

1
sudo bang bangとは正確には何ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、話題のスタックオーバーフローのため。 7年前に閉鎖されました。 この質問を改善する sudo bang bang(sudo !!)の目的は何ですか?いつ使用する必要がありますか?
82 linux  bash  terminal  sh 

11
bashで可能な相対パスを展開する
私のスクリプトへの引数として、いくつかのファイルパスがあります。もちろん、それらは相対的(または〜を含む)にすることができます。しかし、私が書いた関数には、絶対的なパスが必要ですが、シンボリックリンクは解決されていません。 このための機能はありますか?

7
STDERRのみをフィルターに通します
STDOUTと統合する前に、フィルターを介してSTDERRをパイプする方法はありますか?つまり、私は欲しい STDOUT ────────────────┐ ├─────> terminal/file/whatever STDERR ── [ filter ] ──┘ のではなく STDOUT ────┐ ├────[ filter ]───> terminal/file/whatever STDERR ────┘
82 linux  bash  redirect 

5
コマンドラインツールを使用して、並べ替えられた順序で重複をカウントする
ログファイルをgrepして一連の数値をフィルターで除外するコマンド(cmd1)があります。番号はランダムな順序であるため、sort -grを使用して、番号の逆ソートリストを取得します。このソートされたリスト内に重複がある可能性があります。そのリストで一意の番号ごとにカウントを見つける必要があります。 たとえば、cmd1の出力が次の場合: 100 100 100 99 99 26 25 24 24 上記の出力をパイプできる別のコマンドが必要なので、次のようになります。 100 3 99 2 26 1 25 1 24 2


7
bashでファイルの絶対ディレクトリを取得するにはどうすればよいですか?
入力ファイルを引数として取り、それを読み取るbashスクリプトを作成しました。 このファイルには、使用される追加ファイルへの(その場所に対する)いくつかのパスが含まれています。 スクリプトを入力ファイルを含むフォルダーに移動して、さらにコマンドを実行したいと思います。 では、入力ファイルからフォルダー(およびフォルダーのみ)を取得するにはどうすればよいですか?(Linuxの場合。)
82 linux  bash  shell 

7
ヒアドキュメントで「予期しないファイルの終わり」エラーが発生する
ターミナルからメールを送信するためのスクリプトが必要です。ここやオンラインの他の多くの場所で見たものに基づいて、次のようにフォーマットしました。 /var/mail -s "$SUBJECT" "$EMAIL" << EOF Here's a line of my message! And here's another line! Last line of the message here! EOF ただし、これを実行すると、次の警告が表示されます。 myfile.sh: line x: warning: here-document at line y delimited by end-of-file (wanted 'EOF') myfile.sh: line x+1: syntax error: unexpected end of file ...ここで、行xはプログラムで最後に記述されたコード行であり、行yはその中に含まれる行/var/mailです。私が交換しようとしたEOF他のものと(ENDOFMESSAGE、FINISHなど)が、無駄に。私がオンラインで見つけたほとんどすべてがこのように行われています、そして私はbashに本当に慣れていないので、自分でそれを理解するのに苦労しています。誰か助けを提供できますか?
82 bash  email  heredoc 

5
Bashスクリプトがありません ']' [クローズ]
閉まっている。この質問は再現できないか、タイプミスが原因です。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、スタックオーバーフローのトピックになります。 6か月前に閉鎖されました。 この質問を改善する エラー./test.sh:13行目:[:ファイルtest.shに `] 'がありません。角かっこや-aなどの他のオプションを使用するか、ファイルp1のサイズを確認しようとしましたが、エラーは常にそこにあり、elseステートメントは、指定された入力に関係なく常に実行されます。;を削除してみました。13行目ですが、役に立ちませんでした。 test.sh #!/bin/bash echo "Enter app name" read y $y & top -b -n 1 > topLog.log #-w checks for the whole word not and sub string from that word grep -w "$y" topLog.log > p1 #-s option checks if the file p1 is …
82 bash  scripting 

11
シェルスクリプトデーモンを作成する最良の方法は?
shだけを使用して何かを待機するデーモンを作成するより良い方法があるかどうか疑問に思っています: #! /bin/sh trap processUserSig SIGUSR1 processUserSig() { echo "doing stuff" } while true; do sleep 1000 done 特に、ループを取り除き、それでも信号をリッスンさせる方法があるかどうか疑問に思っています。
81 bash  shell  daemon 

10
.bashrcでエコーするとSCPが機能しませんか?
Fedoraには2人のユーザーがいます: ワニー ルート(非常に明白です!) ユーザーWaniの.bashrcの私の内容は次のとおりです。 # .bashrc echo "Hello" # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions rootにログインした後、次のコマンドを入力します。 [root@Dell Wani]# touch try.txt [root@Dell Wani]# service sshd start [root@Dell Wani]# scp try.txt Wani@localhost:~/ Wani@localhost's password: Hello [root@Dell Wani]# ここで、Waniにログインし、次のように入力します。 [Wani@Dell ~]$ …
81 bash  ssh  scp 

4
Linuxで特定の時間にスクリプトを実行するにはどうすればよいですか?[閉まっている]
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、スタックオーバーフローのトピックになります。 7年前に閉鎖されました。 この質問を改善する 特定の日時を含むテキストファイルがあります。そのファイルで指定された時間にスクリプト を実行できるようにしたい。 どのようにそれを達成しますか?バックグラウンドで実行され(デーモンのようなもの)、現在の時刻がファイル内の時刻と一致しているかどうかを毎秒チェックする別のスクリプトを作成しますか?別の方法はありますか?マシンはLinuxサーバー、Debianwheezyです。前もって感謝します
81 linux  bash  scripting  debian 

2
>&はどういう意味ですか?
私はこの表現に少し混乱しました: gcc -c -g program.c >& compiler.txt &>filenamestdoutとstderrの両方をファイルにリダイレクトすることはわかっていますfilename。ただし、この場合、アンパサンドは大なり記号の後にあります。これは、の形式のように見えます。M>&NここでM、およびNはファイル記述子です。 上記のスニペットでは、doesM=1とN='compiler.txt'?これは次とどの程度正確に異なりますか。 gcc -c -g program.c > compiler.txt (ampersand removed) 私の理解では、開いている各ファイルは2より大きいファイル記述子に関連付けられています。これは正しいですか? もしそうなら、ファイル名はリダイレクトのターゲットとしてのファイル記述子と交換可能ですか?

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