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

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

5
間接拡張とは何ですか?$ {!var *}はどういう意味ですか?
「初心者のためのBashガイド」を読んでいます。それは言う: の最初の文字がPARAMETER感嘆符である場合、Bashは残りの部分から形成された変数の値を変数PARAMETERの名前として使用します。次に、この変数が展開され、その値は、PARAMETERそれ自体の値ではなく、残りの置換で使用されます。これは、間接拡張として知られています。 与えられた例は次のとおりです。 franky ~> echo ${!N*} NNTPPORT NNTPSERVER NPX_PLUGIN_PATH 私はここで完全に理解していません: 残りの部分から形成された変数の値 PARAMETER PARAMETERだけで!N*、その後、 残りの PARAMETER だけN*です。これはどのように変数を形成することができますか?Bashはそこで可能なすべてのコマンドを検索しましたか?
85 bash  indirection 

9
パイプを介して殺すための議論を与える方法
特定のプロセスを検索して、そのプロセスを強制終了する必要があります。私はこのようなコマンドを書きました: ps -e | grep dmn | awk '{print $1}' | kill プロセス名はdmnです。しかし、それは機能していません。名前とプロセスでプロセスを見つけるにはどうすればよいですかkill。

6
テキストファイルのn番目の列を取得します
私はテキストファイルを持っています: 1 Q0 1657 1 19.6117 Exp 1 Q0 1410 2 18.8302 Exp 2 Q0 3078 1 18.6695 Exp 2 Q0 2434 2 14.0508 Exp 2 Q0 3129 3 13.5495 Exp 私はこのようにすべての行の2番目と4番目の単語を取りたいです: 1657 19.6117 1410 18.8302 3078 18.6695 2434 14.0508 3129 13.5495 私はこのコードを使用しています: nol=$(cat "/path/of/my/text" | wc -l) x=1 while …
85 linux  bash 

6
BASHでmvを使用してファイル名にタイムスタンプを追加する
ええと、私はLinuxの初心者で、単純なbashスクリプトに問題があります。 実行中にログファイルに追加するプログラムがあります。時間の経過とともに、そのログファイルは巨大になります。実行のたびにログファイルの名前を変更して移動し、プログラムの実行ごとに個別のログファイルを効果的に作成する起動スクリプトを作成したいと思います。これが私がこれまでに得たものです: ペーストビン DATE=$(date +"%Y%m%d%H%M") mv server.log logs/$DATE.log echo program 実行すると、次のように表示されます。 : command not found program ログディレクトリにcdしてdirを実行すると、次のように表示されます。 201111211437\r.log\r どうしたの?欠落している構文の問題があると思いますが、理解できないようです。 更新:以下のshellterのコメントのおかげで、WindowsのNotepad ++で.shファイルを編集し、ftp経由でサーバーに送信し、そこでssh経由でファイルを実行していることが問題であることがわかりました。 。ファイルに対してdos2unixを実行すると、機能します。 新しい質問:ファイルを再送信するたびにこの修正を実行する必要がないように、最初にファイルを正しく保存するにはどうすればよいですか?
85 linux  bash 

3
一重引用符と二重引用符の両方を使用したbashエイリアスコマンド
やりたいことを実行するこのコマンドがありますが、.bashrcでエイリアスを作成できません(一重引用符と二重引用符の両方を使用していることに注意してください)。 svn status | awk '$1 =="M"{print $2;}' 私はもう試した: alias xx="svn status | awk '$1 ==\"M\"{print $2;}'" そして、運がない他のいくつかの常識的な組み合わせ..私はbashが引用符で非常にうるさいことを知っています..それでそれをエイリアスする正しい方法は何ですか、そしてなぜですか?ありがとう

6
一致する行の後から始まるファイル内のすべての行を削除するにはどうすればよいですか?
数行のテキストで構成されるファイルがあります。 The first line The second line The third line The fourth line 次の行の1つである文字列があります。 The second line 私はそれが削除されますので、ファイル内の文字列とその後のすべての行を削除するThe third lineとThe fourth line、文字列に加えて。ファイルは次のようになります。 The first line 私はグーグルで解決策を探しました、そして私は使うべきであるようsedです。何かのようなもの: sed 'linenum,$d' file しかし、文字列の行番号を見つける方法は?または、他にどのようにすればよいですか?
84 linux  bash  sed 

6
Bashで実行された最後のコマンドをエコーし​​ますか?
bashスクリプト内で実行された最後のコマンドをエコーし​​ようとしています。history,tail,head,sedコマンドがパーサーの観点からスクリプト内の特定の行を表す場合に正常に機能するものを使用して、それを行う方法を見つけました。ただし、コマンドがcaseステートメント内に挿入された場合など、状況によっては期待どおりの出力が得られません。 スクリプト: #!/bin/bash set -o history date last=$(echo `history |tail -n2 |head -n1` | sed 's/[0-9]* //') echo "last command is [$last]" case "1" in "1") date last=$(echo `history |tail -n2 |head -n1` | sed 's/[0-9]* //') echo "last command is [$last]" ;; esac 出力: Tue May 24 12:36:04 CEST …
84 bash  command 

3
テキストファイルからUTF-8以外の文字を削除する方法
utf-8でエンコードされたアラビア語、英語、ロシア語のファイルがたくさんあります。Perlスクリプトを使用してこれらのファイルを処理しようとすると、次のエラーが発生します。 Malformed UTF-8 character (fatal) これらのファイルの内容を手動で確認したところ、奇妙な文字がいくつか見つかりました。今、私はこれらの文字をファイルから自動的に削除する方法を探しています。 とにかくそれをすることはありますか?

10
printfを使用したBASHの文字への整数ASCII値
文字から値への機能: $ printf "%d\n" \'A 65 $ 2つの質問があります。最初の質問が最も重要です。 65を取得してAに変換するにはどうすればよいですか? \ 'Aは、printfを使用してASCII文字をその値に変換します。シンタックスある特定のprintfのか、それはBASHのどこにも使用されていますか?(このような小さな文字列はGoogleにとって難しいものです。)
84 bash  ascii  printf 

3
Ctrlキーを押しながら、単語/文字列間でカーソルを移動します
私はCTRL、左矢印キーと右矢印キーを使用するときに、キーを使用してより速く移動することに慣れています(一度に1文字ではなく、単語の終わりに移動します)。 どういうわけかbashでそれを行うことはできますか? 私はおそらくそれをコーディングすることができましたが、もっと簡単な/すでに行われた何かがあるかどうか疑問に思いました。
84 bash 

10
一部のパターンを除いて、grepする方法は?
あるパターンが発生し、他のパターンがないファイル内の行を見つけたいのですが。たとえばloom、gloom。を含むものを除くすべてのファイル/行を検索する必要があります。だから、私はloomコマンドで見つけることができます: grep -n 'loom' ~/projects/**/trunk/src/**/*.@(h|cpp) さて、をloom除いて検索したいですgloom。ただし、次の両方のコマンドが失敗しました。 grep -v 'gloom' -n 'loom' ~/projects/**/trunk/src/**/*.@(h|cpp) grep -n 'loom' -v 'gloom' ~/projects/**/trunk/src/**/*.@(h|cpp) 目標を達成するにはどうすればよいですか? EDIT 1:私はことを意味loomし、gloom文字列(必ずしも言葉)です。したがって、たとえば、bloombergコマンド出力に必要であり、必要ありませんungloomy。 編集2:私の期待のサンプルがあります。次の行は両方ともコマンド出力にあります。 お香のベールから浮かび上がるアイコンに直面しました。 アーティは憂鬱な日に迫っています。 次の行は両方ともコマンド出力に含まれていません。 それはだgloomyin cloods - O偉大マックルdoolders owerひどい」を。 ハイピンティットホールの南西ラウンド
84 bash  grep 

9
キーボード操作なしのgpg暗号化ファイル[クローズ]
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、スタックオーバーフローのトピックになります。 1年前に閉鎖。 この質問を改善する ファイルを暗号化するためにcrontab内で次のコマンドを実行していますが、キーボード操作が必要ありません echo "PASSPHRASE" | gpg --passphrase-fd 0 -r USER --encrypt FILENAME.TXT しかし、私はこの答えを持っています: gpg: C042XXXX: There is no assurance this key belongs to the named user pub 40XXX/C042XXXX 2012-01-11 Name LastName. (comment) <user@email.com> Primary key fingerprint: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX Subkey …
84 bash  crontab  gnupg 

5
Bashファイル拡張子とは何ですか?
テキストエディタでbashスクリプトを作成しましたが、bashスクリプトとして実行できるように、スクリプトをどの拡張機能として保存しますか?理論的にはsshサーバーを起動するスクリプトを作成しました。スクリプトをクリックしたら、どのようにスクリプトを実行させるのか疑問に思っています。OS X10.9.5を実行しています。
84 bash  shell 


1
ifステートメントでの&&演算子の使用
私には3つの変数があります: VAR1="file1" VAR2="file2" VAR3="file3" 次の&&ようなifステートメントでand()演算子を使用する方法: if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ] then ... fi このコードを書くとエラーが発生します。正しい方法は何ですか?

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