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

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

5
bashrcでエイリアスを使用中に競合の可能性をテストするにはどうすればよいですか?
エイリアスコマンドを含むbashrcの更新によりシステムで発生したすべてのコマンド競合を一覧表示する簡単な方法はありますか? たとえば、誰かがalias ls=/path/to/user-generated/executablebashrcで書き込みます。これが実際のコマンドをマスクしていることをどのように知ることができますか(ls)。1つの方法は、bashrcのソースの前後にすべてのエイリアスを実行し、出力を比較することです。より良い方法はありますか? Ubuntu 12.04を実行しています。 bash-バージョン GNU bash、バージョン4.2.24(1)-release(i686-pc-linux-gnu)
12 bash  alias  bashrc 

1
ls notシンボリックリンク
「シンボリックリンクlsではないすべてのファイル」のような否定条件を表示する方法はありますか?私は後者をプロジェクトディレクトリで頻繁に使用しますが、他の否定も同様に役立ちます。 今のところ、私の研究では、「いいね」のエイリアスを作成するだけです。 find . -maxdepth 1 ! -type l | sort # (...) しかし、明らかにこの方法でlsは、列の書式設定などの色が表示されません... OS X 10.8.2のBash v3とPangolinのBash v4を時々使用しています。
12 bash  ls 

2
リストからファイルをインタラクティブに削除する
ファイルのリストを削除して、確認を求められます。リストはlist.txtファイルにあります。次のコマンドが正しく機能しないのはなぜですか? while read i; do rm -i $i; done < list.txt 前のコマンドは私を待ちませんが、幸いなことにファイルは削除されません。 私はBashを使用しています。

4
cpを使用して単一のファイルを複数のディレクトリにコピーする
この質問は、以前の質問「を使用して多数のディレクトリを作成する」の続きmkdirです。 bashシェルを使用しています。次のコマンドを使用して、それぞれが接頭辞「s」で始まる50個のディレクトリを作成しました。 mkdir $(printf "s%02i " $(seq 1 50)) 2番目の桁にゼロが埋め込まれます。つまり、私が取得ディレクトリの形式はs01、s02、...、 、。s49s50 ここで、50個のディレクトリのそれぞれにcp単一のファイル(たとえば、test.txt)をコピーするために使用したいと思います。上記と同様の方法でこれを行うことは可能ですか?たとえば、次のように動作しますか?私はUnix / Linuxに比較的慣れていないので、誰かが私にそれが安全であるという指示を与えてくれるまで、私は本当にこれを試してみたいとは思いません。 cp test.txt $(printf "s%02i.txt" $(seq 1 50)) のmanページを見ると、次のcpようなcp複数の宛先をサポートしているようには見えませんが、 NAME cp - copy files and directories SYNOPSIS cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... DESCRIPTION Copy SOURCE to DEST, or …
12 bash  shell  cp 

3
多変数forループ
forループ内に複数の変数(整数だけでなく)を指定する方法はありますbashか?作業する必要がある任意のテキストを含む2つのファイルがある場合があります。 機能的に必要なのは次のようなものです: for i in $(cat file1) and j in $(cat file2); do command $i $j; done 何か案は?


4
特定のサイズ範囲のファイルを削除する
特定の値の間のサイズのファイルを削除したい。たとえば、次のファイルのリストがあります。 -rw-r--r-- 1 smsc sys 558 Apr 30 13:07 stats.sfe.1.20120430130513.xml.Z -rw-r--r-- 1 smsc sys 388 Apr 30 15:32 stats.sfe.1.20120430153013.xml.Z -rw-r--r-- 1 smsc sys 386 Apr 30 15:36 stats.sfe.1.20120430153513.xml.Z -rw-r--r-- 1 smsc sys 389 Apr 30 15:42 stats.sfe.1.20120430154013.xml.Z -rw-r--r-- 1 smsc sys 390 Apr 30 16:02 stats.sfe.1.20120430160013.xml.Z -rw-r--r-- 1 smsc sys …
12 bash  find  size 

3
グロブの順序を変更することは可能ですか?
次のようなことを行って、syslogから特定のメッセージのすべてのインスタンスを時系列順に表示しようとしています。 grep squiggle /var/log/messages* 残念ながら、globパターンは現在アクティブなファイルと最初に一致します。例えば。 /var/log/messages /var/log/messages-20120220 /var/log/messages-20120227 /var/log/messages-20120305 /var/log/messages-20120312 これは、最近のメッセージが最初に表示され、その後に時系列で履歴メッセージが表示されることを意味します。 どうにかしてグロブパターンの振る舞いを調整して、空の一致をmessagesリストの最後に表示することは可能ですか? そうでない場合、この問題に対処する良い方法は何でしょうか?
12 bash  wildcards 

2
色をサポートするウォッチの代替
phpunit色付きの出力があるコマンド()があります。によるとwatch、コマンドを使用して、--colorフラグを使用してカラーレンダリングをパススルーできるようにする必要があります。ただし、これは機能しません。これを解決する他の方法はありますか?
12 bash  utilities  watch 

3
連結された変数名の逆参照
これはできますが、変数の文字列を作成してから参照解除する必要があります。より単純なステートメントに短縮する方法はありますか? #!/bin/bash FRUITS="BANANA APPLE ORANGE" BANANA_COLOUR="Yellow" APPLE_COLOUR="Green or Red" ORANGE_COLOUR="Blue" for fruit in $( echo $FRUITS ); do fruit_colour="${fruit}_COLOUR" echo $fruit is ${!fruit_colour} done 私はのようなものをたくさん試してみました${!"${fruit}_COLOUR"}か\$${fruit}_COLOURおよび他の多くの変種を、しかし、働いている唯一の方法は、文字列を使用することです。

1
bashでのCtrl-lの再マッピング
リマップできますかCtrl-l bashでは、より多くのちょうどクリアよりも実行するには? 通常は画面がクリアされるだけです。画面をクリアしてリストを表示するように変更したいpwdように: Ctrl- l:clear;ls;

1
なぜbash時間はGNU時間よりも正確なのですか?
buitin bashコマンドtimeは実行のミリ秒精度を提供し、GNU time(通常/ usr / bin / time)はセンチ秒精度を提供します。times(2)システムコールは、クロックで時間を与え、100クロック= 1秒(通常は)ので、精度はGNUのようなものですtime。質問は、bashが何timeを使用してより正確になるのかということです。
12 bash  time  gnu 

1
良いコーディング規約を学ぶために勉強するbashスクリプトの良い例は何ですか?
bashでのプログラミングの基本を学びました。bashスクリプトの良い習慣を学ぶことができるように、bashスクリプトのいくつかの例を研究したいと思います。 特に、以下を示すbashスクリプトの例に興味があります。 引数を処理し、条件付き機能をトリガーする方法 入力エラーをチェックする方法 コマンド補完の実行方法 bashスクリプトを関数、コマンドなどに整理する方法 ヘルプメッセージの表示方法 たとえば、githubのautorandrから多くのことを学びました。bashスクリプトの規則について学ぶことができる、このようなスクリプトまたはスクリプトリポジトリは他にありますか?
12 bash 

7
シェル引数を逆順で出力します
私は少し立ち往生しています。私の仕事は、3番目と4番目を除いて、スクリプトへの引数を逆の順序で出力することです。 私が持っているのはこのコードです: #!/bin/bash i=$# for arg in "$@" do case $i in 3) ;; 4) ;; *) eval echo "$i. Parameter: \$$i";; esac i=`expr $i - 1` done 私はeval(PHPへの挨拶)が嫌いなので、それなしで解決策を探していますが、それを見つけることができません。 引数の位置を動的に定義するにはどうすればよいですか? PS:いいえ、宿題ではありません。試験のシェルを学んでいるので、古い試験を解決しようとしています。


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