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

シェルは、Unixのコマンドラインインターフェイスです。シェルにインタラクティブにコマンドを入力するか、スクリプトを記述してタスクを自動化できます。/ bin / shおよび最も互換性のあるシェル(ash、bash、ksh、zshなど)に適用される質問には、このタグを使用します。エラーのあるシェルスクリプトについては、ここに投稿する前にhttp://shellcheck.netで確認してください。


7
配列名の一部として変数を使用する方法
2つの配列があります。 arrayA=(1 2 3) arrayB=(a b c) そして、コマンドライン引数を使用して、つまりなしでそれらの1つを出力したいと思いますif else。 構文のバリエーションをいくつか試しましたが、成功しませんでした。私はこのようなことをしたいと思っています: ARG="$1" echo ${array${ARG}[@]} しかし、「悪い置換」エラーが発生します。どうすればこれを達成できますか?
11 bash  shell 

2
ファイル名にスペースがあるスクリプトの問題
scpがリモートホストからローカルにファイルを戻すスクリプトを持っています。ファイル名にスペースが含まれている場合があります。scpは、ファイル名にスペースが含まれていないことを好みません。何らかの理由で、スペースを処理する私の試みは正しいscpパスをもたらしませんでした。 コード: PATH=/var/root/Documents/MyFile OG-v1.2.3.pkg scp $PATH Me@10.1.10.33:/Users/Me/Desktop 結果 Cannot find directory: var/root/Documents/MyFile Cannot find directory: OG-v1.2.3.pkg PATHを引用符で囲むと"$PATH"、同じエラーが発生します。 エスケープされたスペースとスペースの交換も機能しませんが、私が知る限り、次のようにする必要があります。 ESC_PATH=${PATH/' '/'\ '} エスケープされたパスを印刷すると、編集が機能したことが示されますが、 echo $ESC_PATH > /var/root/Documents/MyFile\ OG-v1.2.3.pkg

2
コマンドライン予測
(ユーザーの過去のアクティビティに基づく)コマンドライン予測に関するUNIXのコマンドラインの予測に関する興味深い論文を見つけました。そのようなものが実際に実装されているのでしょうか。

12
空の行を削除するためにテキストファイルをフィルタリングする良い方法は何ですか?
空の行がたくさんある(Macの).csvファイルがあります。例: "1", "2", "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum ","2","3","4" "1", "2", "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum …



3
「X」をクリックするか「ctrl + d」を使用するだけでシェルを閉じるのは安全ですか?
「X」をクリックするか、suでrootとしてログインしているときに「ctrl + d」を使用してシェルを閉じるのは安全ですか、それとも「exit」と入力して閉じるのが安全ですか?(セキュリティに関して)何か違いはありますか、それとも同じであり、どのように使用しても問題ありませんか?

4
makefileは、コマンドがローカルマシンで使用できるかどうかをどのように検出できますか?
GTDスタイルのシステムでタスクを計画するために、org-modeを使い始めました。Dropboxフォルダーのディレクトリにすべての組織ファイルを置き、emacsを実行して、Cygwin、Mac OS X、Debianの3つの異なるローカルマシンからこれらのファイルを編集/管理します。私はMobileOrgを使用してiPadからこれらの組織ファイルにアクセスするので、変更が行われたときはファイルを最新の状態に保つ必要があります。これを実行するには、を実行します。checksums.datmd5sum *.org > checksums.dat 問題は、コマンドに対して3つの異なるコマンドがあることですmd5sum:md5sum.exeCygwin、md5Mac OS X、およびmd5sumDebianです。最も理想的な状況は、Dropbox foderに保存されているmakefileで、現在のマシンで使用可能なコマンドを検出し、そのコマンドを実行してmd5チェックサム操作を実行します。
11 shell  make  hashsum 

2
ループ出力のパイピングは、ローカル変数の変更を防ぎます
私は、引数として多数のファイルやディレクトリを受け取る単純なbash関数を記述しようとしています。そうすべき: ファイル名を完全に修飾します。 それらを並べ替えます。 重複を削除します。 実際に存在するものをすべて印刷します。 存在しないファイルの数を返します。 私はほとんど私がやりたいことをするスクリプトを持っていますが、ソートに落ちます。現状のスクリプトの戻り値は正しいですが、出力は正しくありません(ソートされておらず、重複しています)。| sort -u示されているようにステートメントのコメントを外すと、出力は正しくなりますが、戻り値は常にになり0ます。 NB問題を解決するためのよりシンプルなソリューションは歓迎されますが、問題は、なぜこれが私が持っているコードで発生するのかについてです。つまり、パイプを追加すると、スクリプトが変数をインクリメントするように見えるのはなぜrですか? スクリプトは次のとおりです。 function uniqfile { local r=0 for arg in "$@" do readlink -e "$arg" || (( ++r )) done #| sort -u ## remove that comment return $r }


2
ここにあるファイルを使用し、コマンドの出力をリダイレクトします
バッチスクリプトに次のコードがあります。 mpirun -np 6 ./laplace <<END 100 100 100 0.01 100 3 2 1 END | tail -n 1 > output しかし、それは機能していません。HEREファイルをmpirunコマンドへの入力として使用し、出力をtailコマンドにパイプ処理することで行います。しかし、私はここのファイルとテール出力のものが混乱していると思います。 私が望むようにこれを書くにはどうすればよいですか?

7
`highlight`コマンド
文字列全体をstdoutに渡しながら、stdin内の特定の文字列を(色、太字のテキスト、または反転したバック/フォアグラウンドで)簡単に強調表示するために使用できるコマンドはありますか?私はそれを構築することを考えていますが、それがすでに存在する場合はむしろそれを使用したいです。いくつかの望ましい機能: 個別のハイライト文字列は、自動的に別の方法でハイライトされます。たとえば、手動で設定しない場合、最初の文字列は赤、2番目は緑、3番目は青で強調表示されます。 カラーサポートを検出し、太字/反転/その他の強調表示方法が利用できる場合はそれらにフォールバックします。 正規表現とリテラル文字列のマッチングを可能にします。 "foobar"と "barbar"のように、一致が重複する場合は、賢い処理を行うことが望ましい。 カラーコードの追加を除いて、stdinとstdoutの間で何も変更されません。

5
Crontabのシェルスクリプトを使用してリモートマシンにsshできない
以下は、私が実行しようとしているスクリプトで、問題なく実行されます for i in `seq 200 2100` do usr=(`ssh -t -t -o ConnectTimeout=60 machine$1 finger | tail -1 | awk '{print$1}'`) echo $usr done しかし、それをcrontabに追加すると、ユーザーに表示されません。 22 12 * * * sh /home/subrahmanyam/Scripts/who.sh あなたの考えを教えてください..... cronデーモンが実行されている可能性があるため、いくつかのバイナリを含める必要があります...?

1
出力をCDにリダイレクトするにはどうすればよいですか?
コマンドの出力をにリダイレクトすることは可能cdですか?たとえば、を使用してディレクトリを検索し、locateそのパスを取得しました。これで、cdパスを書き込む代わりに、locate出力をにリダイレクトできcdますか? 私はこれを試しました: $ locate Descargas | grep Descargas$ /home/oliver/Descargas $ locate Descargas | grep Descargas$ | cd $ locate Descargas | grep Descargas$ > cd $ locate Descargas | grep Descargas$ < cd /home/oliver/Descargas $ 運が悪い。これは特に便利ではないかもしれませんが、私は興味があります。

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