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

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

1
グロブを使用してforループで './'を指定することに利点はありますか?
で./*.fastq終わるファイルを検索するときに使用した方が安全なのではないかという印象を受けました.fastq。たとえば./、ファイルのキャプチャを防止します.fastq。次の例に示すように、これは明らかに間違っています。 TMP_DIR=$(mktemp --directory) mkdir -p ${TMP_DIR} (cd ${TMP_DIR} touch {a,b,c,}.fastq ls -a echo "" echo "# match all:" for f in *.fastq ; do echo "${f}" done echo "" echo "# with ./:" for f in ./*.fastq ; do echo "${f}" done ) rm -rf ${TMP_DIR} . .. a.fastq b.fastq …
10 bash  shell  wildcards 

2
コマンドでエイリアスを作成する方法には、「と」が含まれています
いくつかの投稿前に、誰かがメモリをパーセンテージで表示する方法を尋ねました。誰かが返信しました: free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }' このコマンドを〜/ .bashrcのエイリアスに変換できるかどうか疑問に思っていました。しかし、エイリアスの構文は次のとおりです。 alias aliasname='command' これどうやってするの?このコマンドには、'との両方が含まれています"。別の方法を試しましたが、うまくいきませんでした。これは可能ですか?何か不足していますか?
10 bash  quoting  alias 

5
終了コマンドの終了コードをキャプチャする
私はこれをbashスクリプトに入れています: exit 3; exit_code="$?" if [[ "$exit_code" != "0" ]]; then echo -e "${r2g_magenta}Your r2g process is exiting with code $exit_code.${r2g_no_color}"; exit "$exit_code"; fi exitコマンドの直後に終了するように見えますが、これは理にかなっています。私はすぐに終了せずに終了コードを提供できるいくつかの簡単なコマンドがあるのだろうかと思っていましたか? 私は推測するつもりでした: exec exit 3 しかし、エラーメッセージが表示されますexec: exit: not found。私に何ができる?:)

1
タブキーをアクティブにして、構造化されたコマンドを複数行で記述します
構造化されたコマンドを複数行で記述したい $ for i in *; → do → file $i; → done bmdt.md: ASCII text breakfast.md: ASCII text brmdh.md: ASCII text test.sh: Bourne-Again shell script text executable, ASCII text しかし、タブが機能していないことを確認し、 bashコンソールでタブキーをアクティブにするにはどうすればよいですか?
10 bash 

3
`_`はbashシェルの環境変数はいつですか?
Bashマニュアルでは次のように述べています(manpage、私の強調): Bashが外部コマンドを呼び出すと、変数$_はコマンドの絶対パス名に設定され、環境内のそのコマンドに渡されます。 そして(特別なパラメータ): _ ($_、アンダースコア。)シェルの起動時に、実行中のシェルまたはシェルスクリプトを呼び出すために使用される絶対パス名を、環境または引数リストで渡されたとおりに設定します。その後、展開後に、前のコマンドの最後の引数に展開します。また、そのコマンドにエクスポートされた環境で実行および配置された各コマンドを呼び出すために使用される絶対パス名に設定します。メールをチェックするとき、このパラメーターはメールファイルの名前を保持します。 bashシェルでは、次のコマンドを実行します。 $ bash $ export | grep '_=' マニュアルによると、_新しいbashシェルの環境変数である必要があります。export新しいbashシェルのすべての環境変数を出力することになっていますが、出力しません _。では_、新しいbashシェルの環境変数はどうなのでしょうか。 実際にはどのbashシェルでも同じことが起こります $ export | grep '_=' 何も出力しません。では_、bashシェルの環境変数はあるのでしょうか。 比較のために: $ dash $ export | grep '_=' export _='/bin/dash' 私の投稿は、マイクのコメントとステファンの返信に触発されました。

2
このスタディガイドは、ファイルタイプを判別するためのコマンドについて間違っていますか?
スタディガイドLPIC-1トレーニングおよび準備ガイド(Ghori Asghar、ISBN 978-1-7750621-0-3)には、次の質問が含まれています... 次のコマンドのどれがファイルタイプを決定するために使用できますか? (A) file (B) type (C) filetype (D) what ...そして答えは "(B)type"であると主張します。 しかし、「(A)file」は正しい答えではありませんか? 私は本全体を疑い始めています。
10 linux  bash 

1
「$-」内の「s」とは何ですか?
私は通常、の内容をよく知っています$-。最近のCentOSでは、次のようになっています。 [grochmal@orion ~]$ echo $- himBH hmBHはすべてのオプションsetでありi、私のシェルがインタラクティブであることを意味します。 それでも、私のArch Linuxでは次のものが得られました。 [grochmal@haps ~]$ echo $- himBHs 私はで有用な何かを見つけることができませんman bashし、set -s私にエラーを与えます。それは何のs略ですか?

4
bash関数のメタデータの割り当てと検査
私は開発プロジェクトで通常行う多くのタスクを自動化する多くのbash関数を生成して登録します。その世代は、私が取り組んでいるプロジェクトのメタデータに依存します。 このようにして、関数に生成されたプロジェクトの情報を注釈を付けたいです。 func1() { # This function was generated for project: PROJECT1 echo "do my automation" } 理想的には、定義を調べるとコメントを見ることができます。 $ type func1 func1 is a function func1 () { # This function was generated for project: PROJECT1 echo "do my automation" } しかし、どういうわけかbashは、関数の実行時ではなく、関数のロード時にコメントを無視するようです。だからコメントは失われ、私はこの結果を得ます: func1 is a function func1 () { echo …
10 bash  function 


2
bashへの入力であるスクリプトに引数を渡す方法
現在、私はこのようなワンライナーを持っています: curl -fsSL http://git.io/vvZMn | bash スクリプトをダウンロードし、それをstdinファイルとしてbashに渡します。追加の引数を指定してこのスクリプトを実行したいと思いますprint。 たぶんこんな感じ? curl -fsSL http://git.io/vvZMn | bash -- print しかし、これは機能しません。
10 bash  pipe  curl  input 

4
zshではなくbashでカットが失敗するのはなぜですか?
タブ区切りフィールドを含むファイルを作成します。 echo foo$'\t'bar$'\t'baz$'\n'foo$'\t'bar$'\t'baz > input 次の名前のスクリプトがあります zsh.sh #!/usr/bin/env zsh while read line; do <<<$line cut -f 2 done < "$1" 私はそれをテストします。 $ ./zsh.sh input bar bar これは正常に動作します。しかし、最初の行をbash代わりに呼び出すように変更すると、失敗します。 $ ./bash.sh input foo bar baz foo bar baz なぜこれが失敗しbashて動作するのzshですか? 追加のトラブルシューティング シバンの代わりに直接パスを使用envすると、同じ動作が生成されます。 echohere-stringを使用する代わりにでパイピングして<<<$lineも、同じ動作が生成されます。すなわちecho $line | cut -f 2。 使用するawk代わりに、cut 作品の両方のシェルのため。すなわち<<<$line awk '{print $2}'。

2
変数割り当ての戻りステータスはどのように決定されますか?
私はこのようなスクリプトの構成を見てきました: if somevar="$(somecommand 2>/dev/null)"; then ... fi これはどこかに文書化されていますか?変数の戻りステータスはどのように決定され、コマンド置換とどのように関連していますか?(たとえば、私は同じ結果を得るでしょうif echo "$(somecommand 2>/dev/null)"; thenか?)

3
経過時間を表示するPS1プロンプト
私は現在、これを使用してbashプロンプトに現在の時刻を表示しています。 PS1=\[\e[0;32m\]\t \W>\[\e[1;37m\] 20:42:23 ~> 前回のプロンプトからの経過時間を表示することはできますか?といった: 00:00:00 ~> sleep 10 00:00:10 ~> sleep 20 00:00:20 ~> これは、バックグラウンドのスクリプトによってPS1を定期的に変更することは可能ですか?
10 bash  prompt 

2
一時停止後、whileループが停止するのはなぜですか?
bashを使用してwhileループを一時停止すると、ループが再開後に停止するのはなぜですか?以下の短い例。 $ while true; do echo .; sleep 1; done . . ^Z [1]+ Stopped sleep 1 $ fg sleep 1 $ 私はシグナルに精通しており、これはここではbashの自然な動作であると推測していますが、この特定の方法で動作する理由をよりよく理解したいと思います。

4
bashrcでの[-n“ $ PS1”]の目的
どのような目的ではない[ -n "$PS1" ]に[ -n "$PS1" ] && source ~/.bash_profile;役立ちますか?この行は.bashrc、dotfiles リポジトリのに含まれています。
10 bash  osx  bashrc 

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