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

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

4
CLIを使用して日付でファイルを別のディレクトリに移動する
古いハードドライブから整理しようとしている写真がたくさんあります。を実行するとls -l、これらのすべてのファイルの作成日が2012年以前であることがわかります。理想的には、これらを自動的にマウントするように設定されていない私のコンピューターの2番目のハードドライブに移動したいと思います。できれば、いくつかのコマンドがリンクされたバッチとしてこれをすべて行うことができます。これまでのところ、ls -l | grep -i 2012によって提供された日付で2012のファイルのみを吐き出していますls -l。ここでの秘訣はcp、これらのファイルすべてを新しいディレクトリに配置することです。各ファイルをコピーする必要があるため、これで次にどこへ行くかわかりません。次のコマンドセットは何ですか?

1
サブシェルを引用し、結果をエコーに渡す最後に改行がないのはなぜですか?
ls | grep pnggrepの出力を行うと、次のようになります。 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (ファイル名、改行、ファイル名、改行) 次に、echo $(ls | grep png)出力: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (ファイル名、単語分割からのスペース、ファイル名、改行!!エコーから!!) これで問題ありませんが、単語の分割を防ぐためにこれを行うecho "$(ls | grep png)"と、出力は次のようになります。 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png そして私の質問は、2番目の改行はどこにあるのか(1つはgrepから、もう1つはechoから)ですか?


1
Linux:ローカル変数のsetコマンド
ローカル/環境変数とエクスポート/設定コマンドを理解しようとしています。 $ set FILEM="razrax" $ echo $FILEM $ FILEN="test" $ echo $FILEN test echo $FILEM空の文字列を返す理由を説明してください
9 bash  shell  variable 

2
bashが「>>()」を処理する方法
出力のリダイレクトとプロセスの置換を実験しているときに、次のコマンドとその結果の出力を偶然見つけました。 me @ elem:〜$ echo foo>>(cat); エコーバー バー me @ elem:〜$ foo (はい、最後の空の改行は意図的なものです。) つまり、echoのバーをbashし、通常のプロンプトを表示し、echoのfoo、echoは改行、カーソルをそこに残します。もう一度Enterキーを押すと、プロンプトが新しい行に出力され、カーソルはそのあとに表示されます(空のコマンドラインでEnterキーを押すと期待どおり)。 私はそれがファイル記述子にfooを書き込み、猫がそれを読み取り、2番目のエコーエコーのバーであるエコーのfooを読み取り、その後コマンドプロンプトに戻ることを期待していました。しかし、明らかにそうではありません。 誰かが何が起こっているのか説明してもらえますか?

3
このコマンドが機能しないのはなぜですか。「ps aux | grep xscreensaver」
グーグルでこれに関するヒットを見つけなかったので、私はあなたに尋ねています: 私はこのコマンドをsshセッションで実行しようとしました。ローカルはDebian Wheezy KDE、リモートはFedora 21 Gnomeです。 ps aux | grep xscreensaver そしてこれは出力です: bash: grep: command not found... 私はこれを今まで見たことがありません、原因は何ですか? システムを更新する数時間前に私は削除するようにマークされたパッケージを確認しませんでした。システムには2人のユーザーしかいないので、私だけがソフトウェアをインストールまたは削除します。 編集#1 コピーされたコマンドと出力は次のとおりです。スペースが2回目にないことに注意してください。 [root@Hostname ~]# ps aux | grep xscreensaver bash: : command not found... [root@Hostname ~]# ps aux | grep xscreensaver bash: grep: command not found...

2
ユーザーが実行したいコマンドを実行する前に別のコマンドを実行します
lsツールの元の動作を次のように変更したいとします。 $ ls Hello World file1 file2 ... これどうやってするの? 実行しているときls、私は別のコマンドレットの発言権を実行したいと思いますecho "Hello World!"。 私が目にする簡単な解決策は、エイリアスを使用することです: alias orig_ls="ls" alias ls='echo "Hello World!"' ただし、実行orig_lsすると出力されるため、これは実際のソリューションではありません"Hello World!"。

1
右矢印キーが押されたことを検出するbashscript
キーコードが右矢印キーでない場合でも、これが常にtrueとして検出されるのはなぜですか? stty_state=`stty -g` stty raw; stty -echo keycode=`dd bs=1 count=1 2>/dev/null` stty "$stty_state" echo $keycode if [ "$keycode"=39 ]; then echo "Right Arrow Key Pressed!" fi

2
生成された子プロセスが失敗した場合は、すべてを終了して終了します
私のスクリプトでは、データセットをinput_aa、input_abなどに分割しています。次に、同じPythonスクリプトをそれぞれ実行します。 # Execute program on each split file for part in input_*; do python3 $part & done wait 私の質問は2つあります。Pythonプロセスが失敗したことをどのように検出しますか。検出された場合、生成されたすべての子を強制終了し、失敗してスクリプトを終了するにはどうすればよいですか。
9 bash  shell  python 


2
条件付きで「時間」を通じてサブシェルを渡すにはどうすればよいですか?
Vagrantボックスのセットアップスクリプトがあります。これは、でシングルステップを測定するために使用していましたtime。次に、時間測定を条件付きで有効または無効にしたいと思います。 たとえば、以前の行は次のようになります。 time (apt-get update > /tmp/last.log 2>&1) 今、私は単にこのようなことをすることができると思いました: MEASURE_TIME=true [[ $MEASURE_TIME = true ]] && TIME="time --format=%e" || TIME="" $TIME (apt-get update > /tmp/last.log 2>&1) しかし、これはうまくいきません: syntax error near unexpected token `apt-get' `$TIME (apt-get update > /tmp/last.log 2>&1)' ここの問題は何ですか?
9 bash  shell  quoting  time 

5
cdコマンドにフックできますか?
実行しているサーバーに何かをセットアップしようとしcdていpublic_htmlます。常に95%の時間フォルダーに移動すると、特定のことを確認するために常に実行するコマンドがいくつかあります。 とにかくフックすることができるcdので、ディレクトリがの場合、public_html自動的にコマンドが実行されますか? cdコマンドにフックできない場合、私が望んでいる結果を達成するために他に何かできることはありますか? CentOS 5.8を実行しています。

2
パイピングbash文字列操作
私は他のいくつかのパイプbash文字列操作の質問を読みましたが、それらは特殊なアプリケーションのようです。 基本的に、以下をより簡単にする方法はありますか? の代わりに $ string='hello world'; string2="${string// /_}"; echo "${string2^^}" HELLO_WORLD 何かのようなもの $ echo 'hello world' | $"{-// /_}" | "${ -^^}" HELLO_WORLD 編集私は速度を維持するために可能であればbash操作内に留まることに興味があります(スクリプトを大幅に遅くする傾向があるsed / awkとは対照的に) Edit2:@jimmij 私は2番目の例が好きで、関数を作成することにしました。 bash_m() { { read x; echo "${x// /_}"; } | { read x; echo "${x^^}"; }; } echo hello world | bash_m …

2
bashおよびzshにおける&& vs&の優先順位
この質問に答えると、bashとの動作に非常に面白い(そして微妙な)違いがあることがわかりましたzsh。 でbash: romano@RRyS:~$ pwd /home/romano romano@RRyS:~$ alias x="cd /bin && ./echo A >/dev/null &" romano@RRyS:~$ x [1] 16611 romano@RRyS:~$ pwd /home/romano ご覧のとおり、エイリアスの実行はxサブシェルで実行されるため、現在のディレクトリは変更されません。 にないzsh: [romano:~] % pwd /home/romano [romano:~] % alias x="cd /bin && ./echo A >/dev/null &" [romano:~] % x [1] 16744 [1] + 16744 done ./echo A >/dev/null 1& …
9 bash  shell  zsh 

1
なぜbashは解析/実行のものも環境変数に入れるのですか?
bash のshellshockバグは、環境変数を介して機能します。正直なところ、次のような機能があることに驚きました。 「env varsによる関数定義の受け渡し」 したがって、この質問は完全に定式化されていない可能性がありますが、この機能が必要になる例またはケースを尋ねることですか? ボーナス。他のシェルzsh、ダッシュなどにもこの機能がありますか?

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