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

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

2
ln -sを使用してコマンドラインショートカットを作成する方法
ターミナルからいつでも開くことができるshファイルを持っています。ターミナルに「スタジオ」と入力し、Androidスタジオを開きたい 私ln -sはこれを行うためにを使用したことを思い出しましたが、忘れてしまい、すでにWebの検索に多くの時間を費やしています。 また、作成されたシンボリックリンクはどのディレクトリに保持されますか? これが私の努力による構文です、コマンドが見つかりません ricardo@debian:~$ ln -s /opt/android-studio/bin/studio.sh studio ricardo@debian:~$ studio bash: studio: command not found

3
別のスクリプトのスクリプトを呼び出しますが、子がexitを呼び出した場合は親を終了しません
first.sh: #! /bin/ksh echo "prova" . ./second.sh echo "ho lanciato il secondo" . ./third.sh echo "ho lanciato il terzo" second.sh: echo "sono nel secondo script" dosomething1 exit $? 場合はsecond.sh検出状況とエラーして終了-9、first.sh常に終了します。子シェルが終了した場合、最初のシェルを終了しないようにするにはどうすればよいですか? 編集できませんsecond.sh。

3
bashで2つのファイルの先頭を比較する
私が行うことができますdiff filea filebファイルの違いを見るために。head -1 fileafileaまたはfilebの最初の行を表示することもできます。これらのコマンドを組み合わせて、fileaの最初の行とfilebの最初の行の違いを表示するにはどうすればよいですか?
11 bash  shell  diff  head 

2
親シェルでサブシェルの変数を使用できるようにする方法
私は、Webサービスからのレポートの時間を計るために、簡単で汚いスクリプトを作成しました。 BASE_URL='http://example.com/json/webservice/' FIRST=1 FINAL=10000 for report_code in $(seq 1 $FINAL); do (time -p response=$(curl --write-out %{http_code} --silent -O ${BASE_URL}/${report_code}) ) 2> ${report_code}.time echo $response # <------- this is out of scope! How do I fix that? if [[ $response = '404' ]]; then echo "Deleting report # ${report_code}!" rm ${report_code} …

4
Vimからシェルアウトするときにシェルエイリアスを使用できるようにするにはどうすればよいですか?
私では.zshrc、いくつかのエイリアスを宣言しています。たとえば、which dbstartそのエイリアスの内容を表示します。 そのシェルからvimを開いた場合、それは子プロセスです。Vimでは、シェルコマンドをで実行できます:! some_command。私が行う場合は:! echo $0Vimが使用しているシェルかを見るために、それは/ binに/ zshの'を出力します。ただし、私のエイリアスは使用できません。 Vimからシェルアウトするときに、通常のシェルエイリアスを使用できるようにするにはどうすればよいですか? 2つのアイデア: どういうわけかEXPORT、元のシェルからその子プロセスへvim、そして再びそのシェル子プロセスへのエイリアス .zshrcサブシェルを作成するときに自分を読むようにVimを構成する

1
中間ファイルを使用せずにクリップボードのコンテンツをフィルタリングする
クリップボードにあるテキストを変更し、いくつかの文字列を含むその特定の行を削除してから、さらに操作するために出力を取得しようとしています(必要な場合にのみ、クリップボードに対処することを好みます)。私はこのようなことを考えていました: cat > swapfile ##Paste all grep -v string swapfile ## Read all rm swapfile 私はファイルの作成を防ぎ、シェルの標準入力/出力自体ですべてを実行しようとします。パイプ、リダイレクト、入力からのgrep / sedを使用してみましたが、望ましくないパターンなしで入力を印刷する結果にはなりませんでした。

2
複数行コマンド:1行をコメント化
(読みやすくするために)パラメータが多いコマンドのスクリプトでは、次の形式を使用します。 docker run \ --rm \ -u root \ -p 8080:8080 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$HOME":/home \ jenkinsci/blueocean しかし、これらのパラメーターの1つを次のようにコメントアウトしたい場合があります。 # -p 8080:8080 EOLはリターンとして解釈され、コマンドが失敗するため、これは機能しません。これも試しました: \ # -p 8080:8080 これも機能しませんでした。 質問:パラメーターをコメントアウトする方法はあるので、それ自体は別の行にありますが、スクリプトを実行できますか?

2
引用符付きのsshコマンド
私はこれについて何も見つけることができなかったという奇妙なエラーがあります。以下のコマンドでユーザーコメントを変更したいのですが。 $ sudo usermod -c "New Comment" user これはサーバーにログオンしていても機能しますが、20以上のサーバーで自動化したいと考えています。通常、リストを使用してサーバーをループし、コマンドを実行できますが、この場合はエラーが発生します。 $ for i in `cat servlist` ; do echo $i ; ssh $i sudo usermod -c "New Comment" user ; done serv1 Usage: usermod [options] LOGIN Options: lists usermod options serv2 Usage: usermod [options] LOGIN Options: lists usermod options . . …
11 shell  ssh  quoting 

2
矢印キー/ Enterメニュー
ユーザーが矢印キーを使用してハイライトカーソルを移動し、Enterキーを押して1つを選択する3つのオプションを表示するシェルスクリプトでメニューを作成する方法

5
単一のディレクトリにある多数のファイルを移動する最も効率的な方法は何ですか?
CentOS 5.x これが繰り返し質問である場合は、お詫び申し上げます。(ファイルの削除に関して)同様の質問をたくさん見ましたが、まったく同じシナリオではありません。 数十万のファイル(おそらく100万を超える)を含むディレクトリがあり、別の問題の短期的な修正として、これらのファイルを別の場所に移動する必要があります。 議論の目的で、これらのファイルが元々存在していて/home/foo/bulk/、それらをに移動したいとします/home/foo2/bulk2/ 試行するmv /home/foo/bulk/* /home/foo2/bulk2/ と、「引数が多すぎます」というエラーが表示されます。 Google氏は、ファイルを一括で削除する別の方法として、findを実行することを教えてくれました。何かのようなもの: find . -name "*.pdf" -maxdepth 1 -print0 | xargs -0 rm 何かを削除していたとしても問題ありませんが、この場合はファイルを移動したいと思います... find . -name "*" -maxdepth 1 -print0 | xargs -0 mv /home/foo2/bulk2/bashのようにタイプすると、ファイルがディレクトリではないというメッセージが表示されます。 あるディレクトリから別のディレクトリにファイルをまとめて移動するためにここで使用するのに最適なコマンドは何ですか?
11 linux  bash  shell  find  rename 

2
引用符と二重引用符付きの引数をbashスクリプトに渡す
この時点で私は持っています: #!/bin/bash screen -p 'ScreenName' -x eval 'stuff '"'"$@"'"'\015' echo eval 'stuff '"'"$@"'"'\015' しかし、スクリプトを次のように呼び出すと、 # script.sh asd "asd" 'asd' 私の引数として渡された:asd asd asd そして私は出力を得ます: eval stuff 'asd asd asd'\015 私はaを除く:asd "asd" 'asd' スクリプトを変更して、引数行全体をすべて引用符で渡すにはどうすればよいですか?
11 bash  shell  quoting 



1
グロブを使用してforループで './'を指定することに利点はありますか?
で./*.fastq終わるファイルを検索するときに使用した方が安全なのではないかという印象を受けました.fastq。たとえば./、ファイルのキャプチャを防止します.fastq。次の例に示すように、これは明らかに間違っています。 TMP_DIR=$(mktemp --directory) mkdir -p ${TMP_DIR} (cd ${TMP_DIR} touch {a,b,c,}.fastq ls -a echo "" echo "# match all:" for f in *.fastq ; do echo "${f}" done echo "" echo "# with ./:" for f in ./*.fastq ; do echo "${f}" done ) rm -rf ${TMP_DIR} . .. a.fastq b.fastq …
10 bash  shell  wildcards 

2
この3つのことをこのbashコードで説明してくれませんか?
私が持っているfunction私の中.bashrcのファイル。私はそれが何をしているのか知っています、それはX個の多くのディレクトリをcd ここにあります: up() { local d="" limit=$1 for ((i=1 ; i <= limit ; i++)) do d=$d/.. done d=$(echo $d | sed 's/^\///') if [ -z "$d" ]; then d=.. fi cd $d } しかし、それについてこれらの3つのことを私に説明できますか? d=$d/.. sed 's/^\///' d=.. なぜこのようにしないのですか? up() { limit=$1 for ((i=1 ; i <= limit ; …

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