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

Bashは、GNUプロジェクトのUnixライクなオペレーティングシステム用の無料のシェルです。

3
rsyncがBashスクリプトで「末尾の欠落」について文句を言う
スクリーンセッションで、あるサーバーから別のサーバーにファイルをrsyncしようとしています。毎回長いコマンドを書く代わりに、Bashスクリプトを入れることにしました。しかし、実行するとMissing trailing-" in remote-shell command.エラーが発生します。 スクリプトで何がうまくいかないのか疑問に思います。 root@127.0.0.1:~# /raid/data/module/bin/rbk.sh Movies /raid/data/Movies rsync_target/ /raid/data/module/bin/screen -S Movies /opt/bin/rsync --rsh="ssh -p 10022 -c des"\ --rsync-path="/opt/bin/rsync" --inplace --progress -a -vv \ /raid/data/Movies sys@192.168.1.15:/raid/data/rsync_target/ Missing trailing-" in remote-shell command. rsync error: syntax or usage error (code 1) at main.c(361) [sender=3.0.5] スクリプトは、最初に何を実行するかをエコーし​​てから、コマンドを実行します。以下は私のスクリプトのダンプです: #!/bin/bash SCREEN="/raid/data/module/bin/screen" SCREENOPT="-S" SCREEN_TITLE=$1 RSYNC="/opt/bin/rsync" …
13 bash  ssh  rsync 

4
Wgetを使用してサイトを再帰的にクロールし、画像をダウンロードする
Webサイトを再帰的にクロールし、特定の種類の画像のみをダウンロードするようにwgetにどのように指示しますか? これを使用してサイトをクロールし、Jpeg画像のみをダウンロードしてみました。 wget --no-parent --wait=10 --limit-rate=100K --recursive --accept=jpg,jpeg --no-directories http://somedomain/images/page1.html ただし、page1.htmlにはサブページへの数百のリンクが含まれていますが、サブページには画像への直接リンクがありますが、wgetは "subpage13.htmlを削除する必要があるため削除します"などのメッセージを報告し、直接リンクされているものがないため、画像をダウンロードしません。開始ページから。 これは、-acceptがクロールとコンテンツのダウンロードの両方を指示するために使用されているのに対し、コンテンツのダウンロードを指示するためだけに使用したいためだと思います。wgetにすべてのリンクをクロールさせ、*。jpegなどの特定の拡張子を持つファイルのみをダウンロードさせるにはどうすればよいですか? 編集:また、一部のページは動的で、CGIスクリプト(img.cgi?fo9s0f989wefw90eなど)を介して生成されます。受け入れリストにcgiを追加しても(例--accept = jpg、jpeg、html、cgi)、これらは常に拒否されます。これを回避する方法はありますか?


7
bashスクリプトの引数をサブシェルに渡す方法
いくつかの作業を行い、元のパラメーターを別のツールに渡すラッパースクリプトがあります。 #!/bin/bash # ... other_tool -a -b "$@" 「他のツール」がサブシェルで実行されない限り、これは正常に機能します。 #!/bin/bash # ... bash -c "other_tool -a -b $@" 次のようにラッパースクリプトを呼び出すと、 wrapper.sh -x "blah blup" 次に、最初の元の引数(-x)のみが「other_tool」に渡されます。実際には、私はサブシェルを作成しませんが、元の引数をAndroidフォンのシェルに渡しますが、違いはありません。 #!/bin/bash # ... adb sh -c "other_tool -a -b $@"
13 bash 

5
すべてのファイルをサブディレクトリから現在のディレクトリに移動しますか?
すべてのサブディレクトリに含まれているファイルを現在のディレクトリに移動し、空のサブディレクトリを削除するにはどうすればよいですか? 私はこの質問を見つけましたが、答えを次のように適応させました: mv * . 動作しませんでした; 次のような警告が多数表示されました。 mv: wil and ./wil are identical サブディレクトリに含まれるファイルには、一意の名前があります。


3
画面で設定されていないLD_LIBRARY_PATH
screenbashで実行すると、変数LD_LIBRARY_PATHが消去されます。いくつか読んだところ、これは予想される動作のようですが、回避する必要があります。 回避策は、LD_LIBRARY_PATH宣言をに追加すること~/.bashrcです。私の場合、LD_LIBRARY_PATHはシェルの起動からscreenを呼び出すまでの間に大幅に変更されるため、LD_LIBRARY_PATH の現在の値をscreenセッションに取得する必要があります。

6
ターミナルを開かずにWindows 10でbashバックグラウンドプロセスを実行する
私は通常、Windows 10で何かをプログラミングしているときにlinuxサブシステムを使用しているため、すべてのパスはを基準にしてい~ます。プロセスを終了するまで、バックグラウンドで永久に実行されるpythonスクリプトがあります。ターミナルを開かずにWindows 10 bashでそれをするにはどうすればよいですか? 私が試したこと: bash -c "python3 script.py 実行から。 nohup python3 -u script.py その後、ターミナルを閉じます。 setsid python3 script.py その後、ターミナルを閉じます。 これらはどれも機能しませんでした。これを行う方法はありますか?あるいは、パスを変更して、W10からスクリプトを実行し、毎回パスを切り替えずにbashを実行する方法はありますか?

5
端末に$ PATHを入力した後、そのようなファイルまたはディレクトリはありません
端末に書き込むとき echo $PATH 私の出力は :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin しかし、私がちょうど書くとき: $PATH この出力私は正しく理解していません、出力は次のとおりです: bash: :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin: No such file or directory そして私の質問は、なぜ「そのようなファイルまたはディレクトリはありません」と書かれたのですか?PATH変数からのすべてのディレクトリが存在します。
13 linux  bash  path 

2
Ubuntu:別のコマンドの出力を実行する
別のコマンドラインを出力するコマンドラインがあります。次に例を示します。 > commandlineA param1 param2 commandlineB param1 与えられたパラメーターでcommandlineBを実行する単一のコマンドライン実行を希望します。 単一のコマンドラインを使用してそれを行う簡単な方法はありますか、または出力を変数に格納して実行する小さなbashファイルを実行する必要がありますか? ありがとう

2
コマンドラインからシステムベルを鳴らす方法は?
LinuxではいくつかのBashスクリプトを使用していますが、完了までに時間がかかります。それらのタスクの完了時にシステムのベルを鳴らすコマンドをそれらの最後に追加したいので、通知を受けることができます。 それを行うための適切なコマンドは何ですか?(私が必要なのは、音で、場合によってはメッセージで通知されることですので、これらの点で解決策を受け入れることができることに注意してください)。

6
Windows 10 Linux bashシェルのctrl + spaceがEmacsでマークを設定しません
Windows 10では、Linux Bashのサブシステムをインストールしました。しかし、Emacs Ctrl+のショートカットに問題があり、spaceマークポイントが設定されません。 私が試したが助けなかったもの: Windowsコンソールのプロパティメニューで[Ctrlキーのショートカットを有効にする]をオフにしようとしました 成功せずに別の端末ConEmuを使用しようとしました。 これは、ctrl + spaceで同様の問題を抱えているubuntuと何らかの関係があり、windows linux bashはubuntuリポジトリを使用しているのでしょうか。


1
bashの文字列の途中の文字を削除する方法
bashには文字列があり、文字列の途中の文字を削除しようとしています。次のように、文字列の先頭または末尾から文字を削除できることを知っています。 myVar='YES' myVar="${myVar#'Y'}" myVar="${myVar%'S'}" しかし、どうすれば中央の1つを削除できますか?
12 bash 

2
ファイル名パターンまたはディレクトリのbash補完
bash完了スクリプトを設定しようとしていて、問題が発生しています。 リストされた補完が特定の拡張子に一致するファイル、またはディレクトリ(その拡張子のファイルを含む場合と含まない場合がある)のいずれかになるように設定したいと思います。 私が抱えている問題は、ファイルやディレクトリを含めるための補完を取得できる唯一の方法は、のようなものを使用することですが-o plusdirs -f -X '!*.txt'、bashにディレクトリの1つを補完させると、スペースではなくスペースが最後に追加されるだけですスラッシュ。 _xyz() { local cur=${COMP_WORDS[COMP_CWORD]} local prev=${COMP_WORDS[COMP_CWORD-1]} #COMPREPLY=( $( compgen -f -X '!*.txt' -- $cur ) ) #COMPREPLY=( $( compgen -f -G '*.txt' -- $cur ) ) #COMPREPLY=( $( compgen -o filenames -f -X '!*.txt' -- $cur ) ) #COMPREPLY=( $( compgen -o dirnames …

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