タグ付けされた質問 「shell-script」

シェルスクリプト、シェルによって解釈される実行可能ファイル(bash、zshなど)に関する質問。

4
シェルスクリプトを使用してファイルから文字列を削除する方法
から文字列を削除しようとしています.bash_profile。シェルスクリプトを実行すると文字列が追加されます。 次のようにbash_profileで私の文字列: # for Myapllication export MYAPP_HOME=/opt/myapp を.bash_profile介してmyappが削除されたときに文字列を削除したいのですがrpm。 シェルスクリプトを介してファイルから文字列を削除する方法 (または可能な代替方法)

3
bashスクリプトによる設定ファイルの編集
私は、アプリケーションのインストールと設定ファイルの更新に使用する単純なbashスクリプトを作成しようとしています。設定ファイルを修正するのに苦労しています。 # DBHost=localhost DBName=test # DBPassword= 上記のように以下のように変更する方法はありますか? DBHost=localhost DBName=database DBPassword=password

2
Python Shebangですべてのファイルを検索する
大きなソースツリーに対してPEP8チェックを実行しようとしています。ツリーは、さまざまな言語のファイルの組み合わせで構成されています。アイデアは、明示的にリストする必要なしにすべてのPythonスクリプトをチェックすることです。これらのファイルの大部分には、実際には.py拡張子がありません。シバンでPythonという単語を含むすべてのファイルを検索する、または実行時にPythonで実行されるすべてのファイルを検索する簡単な方法はありますか?

4
特定のファイル(複数)の行末にある末尾の空白を削除するにはどうすればよいですか?
私はそれらを表示するようにvimを構成したソースファイル内の不要なスペースにうんざりしています。 問題は、(いつもではないにしても)私の仲間の開発者と無駄なスペースを扱わなければならないことが非常に多いということです。 ソースファイルをスキャンし(正規表現を指定)、指定されたすべてのファイルから空白を削除したいのですが。 私はウェブ( "bash remove whitespace"など)を検索しましたが、有用なものは見つかりませんでした。

3
ケース+ケース構文で等しいかそれ以下またはそれ以上を実装する方法
私の目標は、数値の範囲を(case+ のみでesac)確認し、その範囲を印刷することです。だから例えば: 数値が0〜80の場合、印刷 >=0<=80 数値が81から100の間の場合、印刷 >=81<=100 等 以下の私のスクリプトの問題は、>=0<=900から9までの数値の場合のみ印刷されます。数値の範囲に従って正しい出力を印刷するようにスクリプトを修正する方法は? #!/bin/ksh read number case $number in [0-80]) echo ">=0<=80";; [81-100]) echo ">=81<=100";; [101-120]) echo ">=101<=120";; [121-300]) echo ">=121<=300";; esac

6
テンプレートからテキストファイルを作成するツール
テンプレートから100以上のテキストファイルを定期的に作成する必要があります。 現在、非常に複雑なシェルスクリプトを使用しています。これを処理するスマートな方法があると思いますが、方法がわかりません。 「データベース」があります。 # outputfile template data1 data2 data3 first.txt $template_main $text1 abcd 1234 second.txt $template_main $text2 efgh 5678 third.txt $template_other $text1 ij 90 そして設定ファイル: template_main=main.txt template_other=other.txt text1=whatever text2=blah テンプレートは、%% data2 %%のようなプレースホルダーを含むテキストファイルです(プレースホルダーフォームは変更できます)。 誰かがこれを複雑なシェルスクリプトよりも自動化するツールを知っていますか?

2
POSIXテストと-a
私はcheckbashismsで私のスクリプトをチェックし、次の警告を受け取りました: possible bashism in check_ssl_cert line 821 (test -a/-o): if [ -n "${ALTNAMES}" -a -n "${COMMON_NAME}" ] ; then ではPOSIX仕様のセクション4.62.4 Iの発見 primary -a primaryバイナリを実行し、プライマリとプライマリの結果を実行します。-a演算子は-o演算子よりも優先されます。 なぜポータブルではない-aと-o考えられますか?


2
ファイルを1行ずつ読み取る際のユーザー入力の要求
クラスのispell場合は、whileループ内でユーザー入力を要求してから出力を取得するBashスクリプトを作成する必要があります。これは、ファイルの次の行をユーザー入力として保存するだけです。 whileループでユーザー入力を要求するにはどうすればよいですか? #!/bin/bash #Returns the misspelled words #ispell -l < file #define vars ISPELL_OUTPUT_FILE="output.tmp"; INPUT_FILE=$1 ispell -l < $INPUT_FILE > $ISPELL_OUTPUT_FILE; #echo a new line for give space between command #and the output generated echo ""; while read line; do echo "'$line' is misspelled. Press "Enter" to keep"; read -p …

1
出力のリダイレクトとスペース
私はこれについて妄想的ですが、うまくいけばそれは簡単な質問です: 違いはありますか cat file1 | egrep -oP "[Mm]y string" > /home/user/file.txt そして cat file1|egrep -oP "[Mm]y string">/home/user/file.txt つまり、パイプ文字(|)とリダイレクト文字(>)のパディングにスペースがあるかどうかは問題になりますか?私は本当にそこにスペースがあると、私がそれを望まないときに、スペースがどういうわけか出力ファイルに含まれることになることに非常に偏執的です。誰かが明確にできますか?(それが重要な場合はUbuntu 12 / bashを使用します。)

2
スクリプト内からスクリプトファイルを削除しても安全ですか?
スクリプトがあると想像してみてくださいfoo。これは、ユーザーがログインしたときに1回実行する必要があり、正常に実行された後は必要ありません。 私の質問:スクリプト内からスクリプトファイルを削除しても安全ですか? 例えば: #!/bin/bash # do something ... # if successful rm /path/to/foo exit 0

2
forループの並列化
for次のコードのループを並列化したいと思います。これを行う方法? #!/bin/bash N=$1 n=$2 for (( i=1; i<=$N; i++ )); do min=100000000000000 //set min to some garbage value for (( j=1; j<=$n; j++ )); do val=$(/path/to/a.out) val2=`echo $val | bc` if (( $val2 < $min )); then min=$val2; fi done arr=("${arr[@]}" "$min") done


3
Mass .flac-> .mp3トランスコーディング:ID3タグ情報を保持するシェルスクリプトを作成する方法
ここ数週間、.flac-> .mp3トランスコーディングへのかなり「実践的な」アプローチから、はるかに「設定して忘れる」ものに移行しました。 最初のステップは、GUIフロントエンド(LAMEプラグインを備えたAudacity)の使用を停止し、代わりに、ここで概説した方法を使用することでした。 2番目の手順は、そのコマンドループが再帰的に動作するように指示し、.flacファイルを含む多くのサブディレクトリを持つディレクトリを1つの簡単な手順でトランスコードできるようにするbashシェルスクリプトを見つけることでした。その回答は、askubuntu.comのユーザーから提供されました。 次に、ID3タグ情報が保持されるようにさらに改良する方法を学びたいと思います。上記にリンクされたメソッドは、ID3タグデータを削除し、最小限を残します(つまり、タイトルフィールドのみが残ります)。 誰でも私にそのようなシェルスクリプトの書き方を教えてもらえますか? シェルスクリプトは次のように更新されています。 #!/bin/bash file="$1" flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3" id3cp "$file" "${file%.flac}.mp3" やってfind . -name '*.flac' -exec ~/bin/flac2mp3 '{}' \;〜/デスクトップ/スタックにすると、次の出力が得られます。 01 - Amon Tobin - Chomp Samba.flac: done LAME 3.98.4 64bits (http://www.mp3dev.org/) Using polyphase lowpass filter, transition band: 19383 Hz …

6
ディレクトリ1にあるがディレクトリ2にはないファイルを比較しますか?
作成したいbashスクリプトに問題があります lsがディレクトリにあるファイルを一覧表示することはわかっていますが、directory1にはあるがdirectory2にはないディレクトリを一覧表示し、次にdirectory1にないdirectory2にあるファイルを一覧表示します。 微妙な試みで、私は試しました: ls -al | diff directory1 directory2 それがうまくいかない理由をすぐに理解しました。誰かが完全なオタクを手伝うことはできますか?
9 bash  shell-script  ls  diff 

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