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

Bashコマンドシェル用に記述されたスクリプトに関する質問。エラー/構文エラーのあるシェルスクリプトについては、ここに投稿する前に、shellcheckプログラム(またはhttps://shellcheck.netのWeb shellcheckサーバー)で確認してください。Bashのインタラクティブな使用に関する質問は、スタックオーバーフローよりもスーパーユーザーで話題になる可能性が高くなります。

7
Python内からbashスクリプトを実行する
次のコードに問題があります。 callBash.py: import subprocess print "start" subprocess.call("sleep.sh") print "end" sleep.sh: sleep 10 「終了」を10秒後に印刷してほしい。(私はこれが馬鹿げた例であることを知っています、私は単純にpythonの中で眠ることができましたが、この単純なsleep.shファイルは単なるテストでした)
104 python  bash  call 



5
Bashのスクリプトパラメータ
次のように使用するシェルスクリプトを作成しようとしています。 ocrscript.sh -from /home/kristoffer/test.png -to /home/kristoffer/test.txt スクリプトは、画像ファイルをテキストファイルに変換します。これが私がこれまでに思いついたことです: #!/bin/bash export HOME=/home/kristoffer /usr/local/bin/abbyyocr9 -rl Swedish -if ???fromvalue??? -of ???tovalue??? 2>&1 しかし、-fromとの-to値を取得する方法がわかりません。それを行う方法に関するアイデアはありますか?
103 linux  bash  shell  parameters 

6
Bash:フォルダ構造を維持しながら、名前付きファイルを再帰的にコピーします
私は望んでいました: cp -R src/prog.js images/icon.jpg /tmp/package 宛先ディレクトリに対称構造を生成します: /tmp | +-- package | +-- src | | | +-- prog.js | +-- images | +-- icon.jpg 代わりに、両方のファイルが/ tmp / packageにコピーされます。フラットコピー。(これはOSX上にあります)。 ワイルドカードで指定されたファイル(src / *。jsなど)を含むすべてのファイルを宛先ディレクトリ内の正当な場所にコピーするために使用できる単純なbash関数はありますか?"for each file、run mkdir -p $(dirname "$file"); cp "$file" $(dirname "$file")"と少し似ていますが、おそらく単一のコマンドです。 これは関連するスレッドであり、不可能であることを示唆しています。作成者の解決策は、ワイルドカードであるかどうかに関係なくファイルのリストを提供し、それらすべてを宛先ディレクトリにコピーしてもらいたいので、私にはそれほど役に立ちません。IIRC MS-DOS xcopyはこれを行いますが、cpに相当するものはないようです。
103 bash  shell 

7
LinuxのBashで複数のファイルを一度に削除する方法は?
Linuxサーバー上のファイルのリストがあります。 abc.log.2012-03-14 abc.log.2012-03-27 abc.log.2012-03-28 abc.log.2012-03-29 abc.log.2012-03-30 abc.log.2012-04-02 abc.log.2012-04-04 abc.log.2012-04-05 abc.log.2012-04-09 abc.log.2012-04-10 rm -rf以下のコマンドを使用して、選択したログファイルを1つずつ削除しています。 rm -rf abc.log.2012-03-14 rm -rf abc.log.2012-03-27 rm -rf abc.log.2012-03-28 選択したファイルを一度に削除できるようにする別の方法はありますか?
103 linux  bash  rm 

22
Ansibleで新しいユーザーとパスワードを作成する
私はubuntu 12.04で新しいユーザーを作成するansibleタスクがあります。 - name: Add deployment user action: user name=deployer password=mypassword 期待どおりに完了しますが、そのユーザーとしてログインしてパスワードでsudoを実行しようとすると、常に正しくないと表示されます。何が悪いのですか?
103 bash  shell  ubuntu  ansible 

15
特定のディレクトリ内のディレクトリの数を数える
特定のディレクトリにあるフォルダの数を数える方法。次のコマンドを使用していますが、常に追加のコマンドが提供されます。 find /directory/ -maxdepth 1 -type d -print| wc -l たとえば、3つのフォルダーがある場合、このコマンドは4を提供します。5つのフォルダーが含まれる場合、コマンドは6を提供します。なぜですか?
103 linux  bash 

3
シェルでの変数補間
という変数がありますfilepath=/tmp/name。 変数にアクセスするために、私はこれを行うことができることを知っています: $filepath 私のシェルスクリプトで私はこのようなことをやろうとしました(バッククォートが意図されています) `tail -1 $filepath_newstap.sh` 変数が呼び出されていないため、この行は失敗しました、そうです! $filepath_newstap.sh _newstap.sh変数名に追加するにはどうすればよいですか? バックティックは式の評価を目的としていることに注意してください。
103 bash  shell  unix 

5
シェルスクリプトの行末にセミコロンが不要ですか?
以下を含むシェルスクリプトがあります。 case $1 in 0 ) echo $1 = 0; OUTPUT=3;; 1 ) echo $1 = 1; OUTPUT=4;; 2 ) echo $1 = 2; OUTPUT=4;; esac HID=$2; BUNCH=16; LR=.008; 上記のスニペットではセミコロンは完全に不要ですか?また、一部の人々がダブルセミコロンを使用する理由はありますか? セミコロンは区切り文字にすぎないようです。改行の代わりに使用します。
103 bash  shell  syntax 


9
STDOUTとSTDERRの両方をターミナルとログファイルに移動するにはどうすればよいですか?
技術者以外のユーザーがインタラクティブに実行するスクリプトがあります。スクリプトは、ユーザーがスクリプトが正常に実行されていることを確認できるように、ステータスの更新をSTDOUTに書き込みます。 STDOUTとSTDERRの両方をターミナルにリダイレクトしてください(ユーザーがスクリプトが機能していることを確認できるようにしたり、問題があったかどうかを確認したりできます)。また、両方のストリームをログファイルにリダイレクトする必要があります。 私はネットでたくさんの解決策を見てきました。機能しないものもあれば、恐ろしく複雑なものもあります。私は実行可能なソリューションを開発しました(答えとして入力します)が、それは扱いにくいです。 完璧な解決策は、両方のストリームをターミナルとログファイルの両方に送信するスクリプトの先頭に組み込むことができる1行のコードです。 編集: STDERRをSTDOUTにリダイレクトし、結果をT型にパイプすることは機能しますが、出力をリダイレクトしてパイプすることを覚えているユーザーに依存します。ロギングを誰にでもできる自動化したいのです(そのため、スクリプト自体にソリューションを埋め込むことができます。)
103 bash  logging  shell 

11
`set -u`を使用して空の配列拡張をバッシュ
私はを持つbashスクリプトを書いていてset -u、空の配列の展開に問題があります。bashは、展開中に空の配列を未設定の変数として扱うようです。 $ set -u $ arr=() $ echo "foo: '${arr[@]}'" bash: arr[@]: unbound variable (declare -a arrどちらも役に立ちません。) これに対する一般的な解決策は、${arr[@]-}代わりに使用することです。したがって、(「未定義」)空の配列の代わりに空の文字列に置き換えます。ただし、これは適切な解決策ではありません。単一の空の文字列が含まれている配列と空の配列を区別できないためです。(@ -expansionはbashで特別であり、に展開"${arr[@]}"される"${arr[0]}" "${arr[1]}" …ため、コマンドラインを構築するための完璧なツールになります。) $ countArgs() { echo $#; } $ countArgs a b c 3 $ countArgs 0 $ countArgs "" 1 $ brr=("") $ countArgs "${brr[@]}" 1 $ countArgs "${arr[@]-}" …
103 bash 

15
ディレクトリとそのサブディレクトリで最大のファイルを見つける方法は?
UNIXクラスを始めたばかりで、さまざまなBashコマンドを学習しています。私たちの割り当てには、その下に多数のフォルダがあるディレクトリでさまざまなコマンドを実行することも含まれます。 私はルートフォルダからすべての通常のファイルをリストして数える方法を知っています: find . -type l | wc -l しかし、私はディレクトリ全体で最大のファイルを見つけるためにそこからどこへ行くべきかを知りたいのです。duコマンドに関して何かを見たことがありますが、それはまだわかっていません。そのため、学んだことのレパートリーでは、なんとかしてls -tコマンドにコマンドを接続する必要があると思います。 そして、私の 'lingo'が正しくない場合、私はまだそれに慣れています!


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