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

他のBourne / POSIXシェルとは対照的に、GNUのBourne Again SHellに固有の質問。Unixシェル全般に関する質問については、代わりに/ shellタグを使用してください。

2
基本的なコマンドが機能していません:-bash:ls:そのようなファイルやディレクトリはありません
私はUnixを初めて使用するので、論文のプログラムをインストールする過程で、などの基本的なUnixコマンドのPATHを試してみたはずlsです。lsファイルを一覧表示するディレクトリ名を入力するたびに、次のようになります。 -bash: ls: No such file or directory これを修正するにはどうすればよいですか?どんな助けでも大歓迎です!
8 bash  command-line  ls  path 



3
コマンドのグループをパイプする/リダイレクトする
現在、次の設定を使用して複数のコマンドの出力をリダイレクトしています。 echo "Some normal commands" ( echo "Error: something happened" echo "Warning: this incident will be logged" ) >> logfile echo "More normal commands" これはかなり便利で、パイプでも機能します。 これはこれを行う最良の方法ですか?考慮すべき代替案はありますか?

1
パイプとリダイレクションバインディングの優先順位は、論理和、論理積などですか?
演算子「;」、「&」、「&&」、または「||」の相対的なバインディング優先順位を知っています。 http://www.gnu.org/software/bash/manual/bashref.html#Lists しかし、パイプが「&&」と一緒に画面に入ってくると、結合の強さを理解するのに苦労し、正しいコマンドに出くわすか、あきらめます。 '|'のバインディングの優先順位とは 上記と比較して「>」ですか? 私が混乱する例: ls _thumbnails/video.mp4.jpg 2>/dev/null && echo "thumbnail already generated. Not regenerating" \ && exit \ || ffmpeg_thumbnail_create video.mp4 2>/dev/null \ && ls _thumbnails/video.mp4.jpg \ && echo "Thumbnail successfully created" \ && exit \ || echo "Thumbnail creation failed" \ | tee ~/thumbnails.log 上記の目的は、サムネイルがまだない場合にのみサムネイルを作成することです(私は毎日cronjobを実行しています)。そして、エラーがない場合(Unixの方法ではない)のffmpegの大量の出力は好きではありません。他の状況もあるので、これらのプログラムに固有の個別のステートメントまたは特別なオプションを使用するアドバイスを私に与えないでください。バインディングの優先順位を理解したい。

2
各ユーザーの.sshディレクトリをbashから取得する信頼できる方法は何ですか?
/ etc / passwdをaugtoolで解析できます: myuser=bob usershome=`augtool -L -A --transform "Passwd incl /etc/passwd" print "/files/etc/passwd/$myuser/home" | sed -En 's/\/.* = (.*)/\1/p'` ...しかし、少し複雑すぎるようです。 ユーザーのホームを表示するためのシンプルな専用ツールはありますか(変更にusermod使用できるなど)?

2
CVE-2014-6271 bashの脆弱性の修正をcygwinに適用する方法は?
この脆弱性の修正をcygwinに適用する方法を知りたいのですが。 CYGWIN_NT-6.1 MYHOSTNAME 1.7.30(0.272/5/3) 2014-05-23 10:36 x86_64 CygwinWindows 7でcygwinを実行しています。 #bash -version GNU bash, version 4.1.11(2)-release (x86_64-unknown-cygwin) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" env x='() { :;}; …

3
bashシェルスクリプトからサービスURLを並行して呼び出す方法は?
別のアプリケーションから呼び出しているサービスがあります。以下は私が呼び出している私のサービスURLです- http://www.betaservice.domain.host.com/web/hasChanged?ver=0 上記のサービスURLを1つずつ順番に呼び出すのではなく、マルチスレッドで負荷テストを行う必要があります。 bashシェルスクリプトからの方法はありますか?マルチスレッドで呼び出すことにより、上記のサービスURLに負荷をかけることができますか?可能であれば、URLを超えて60〜70のスレッドを並行して非常に高速に呼び出すことができますか?

1
bashはどのようにELFファイルを実行しますか?
Linux Boxにいるときは、bashをシェルとして使用します。今、私はbashがELFファイルの実行をどのように処理するかを疑問に思いました。私はbash-4.3.tar.gzをgrepしました。ファイルがELFであるかどうかを確認するためのマジック番号パーサーのようなものも、exec()システムコールも見つかりませんでした。 プロセスはどのように機能しますか?ELFの実行をbashがOSに渡す方法を教えてください。
8 bash  kernel  executable  exec  elf 

2
ケースステートメント外の変数の割り当て
多くの言語では、caseステートメント内で変数の割り当てを何度も繰り返すのではなく、case / switchステートメントの結果を変数に割り当てることができます。Bashシェルでこのようなことを行うことは可能ですか? color_code=$(case "$COLOR" in (red) 1;; (yellow) 2;; (green) 3;; (blue) 4;; esac) (または、余談ですが、他のシェルでは?)


1
シェルスクリプトを配布する適切な方法
シェルの動作が変更可能でset予測できない場合、シェルスクリプトを配布する最も適切な方法は何ですか? たとえば、rm *.txt実行された環境では期待どおりに実行されませんset -f。がどのrm *.txt環境でも現在のディレクトリにあるすべてのテキストファイルを削除することを確認するにはどうすればよいですか? 一般的に配布する前に、シェルスクリプトが期待どおりに実行されることを確認するにはどうすればよいですか?

4
ブレース展開中に生成された引数間のスペースを抑制するにはどうすればよいですか?
次のコマンドを使用して、テストするURLのリストを作成しました。 echo -e localhost:8080/reports/{promos,promo-updates,scandown}/{130,139,142}{,-unburdened,-burdened}{,.pdf,.xls,.xlsx,.csv,.preload}"\n" >> urls.txt 残念ながら、urls.txtそれぞれに追加されたURLの前にはスペースがありました(もちろん、最初のものを除きます)。それがなぜ起こったのか理解しており、sed式をパイプ処理することでそれを取り除くことができることを理解していますが、代わりにそれを抑制する方法があるかどうか知りたいです。(それはばかげて、見た目が悪いように見えるかもしれませんが、多くの人々が「猫を虐待しない」と感じるので、好みと同じです。) 私が試した、二重引用符抑制単語分割にするので、それは何の-行くんでした、が、それはあまりにもブレース展開を抑制しました。 IFSを空の文字列に変更しようとしましたが、うまくいきませんでした。 IFS='' echo -e localhost:8080/reports/{promos,promo-updates,scandown}/{130,139,142}{,-unburdened,-burdened}{,.pdf,.xls,.xlsx,.csv,.preload}"\n" >> urls.txt また、改行に変更しませんでした。 IFS='\n' echo -e localhost:8080/reports/{promos,promo-updates,scandown}/{130,139,142}{,-unburdened,-burdened}{,.pdf,.xls,.xlsx,.csv,.preload}"\n" >> urls.txt

2
プログラムを実行し、クラッシュせずに終了した場合に再度実行するBashスクリプトを作成する
MacOSXでアプリを実行するbashスクリプトを作成する最も簡単な方法を知りたいです(これはUNIXベースのシステムなので、これが正しい場所だと思いました)。プログラムが終了するのを待ちます。出口がクラッシュではなかった場合は、もう一度実行します。それ以外の場合は、クラッシュレポートウィンドウを開いたままにして終了します。 このスクリプトは、クラッシュまたは手動で終了するまで永遠に実行させてください。 私は漠然とした考えを持っていますが、よくわかりません。ここに私がこれまで持っているものがあります: echo "Launching Autorun…" if ["$1" -eq "0"]; then # Application exited successfully. Restarting. /path/to/application.app else # An error occured. Do nothing and exit. exit fi

1
Bashで履歴を前に検索しますか?
Bashでを押すとCtrlr、コマンド履歴を逆方向に検索できます。私は再び前方に検索したい場合は、私が(?何をしなければならCtrls動作しません。) 私のバッシュは: GNU bash, version 4.2.25(1)-release (i686-pc-linux-gnu)

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