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

Bashスクリプトは、Bashシェル言語でスクリプトを作成しています。

1
1行にawk print $ 2、$ 3、$ 4で重複データを表示
次を含む2つのリストがある場合(例): list1 x;00:26:82:50:00:00;192.168.1.195;COMPUTER1 x;00:26:82:50:11:11;192.168.1.195;COMPUTER2 x;00:26:82:50:22:22;192.168.1.196;COMPUTER3 list2 x;00:26:82:50:11:11;192.168.1.197;COMPUTER3 このコマンドを実行すると、重複が表示されます: awk -F\; '{print $2}' list* | sort | uniq -d out: 00:26:82:50:11:11 awk -F\; '{print $3}' list* | sort | uniq -d out: 192.168.1.195 awk -F\; '{print $4}' list* | sort | uniq -d out: COMPUTER3 私の質問は: コマンド(awk -F \; .. etc)を1行で起動して同じ結果を得るにはどうすればよいですか? …

3
cronから実行されているbashスクリプトからのFTPが機能しない
cronMySQLデータベースといくつかのファイルのバックアップを作成するために実行されるスクリプトがあります。tarボールを作成して暗号化したopenSSH後、リモートFTPサーバーに配置する必要があります。ftp部分のコードは次のとおりです。 HOST='abcd.dyndns.biz' USER='username' PASSWD='password' FILE='myBack-'${LOCAL_HOST}'-'${DATENAME}'.enc.tar.gz' DIRNAME='/usr/local/backups/' cd ${DIRNAME} ftp -n ${HOST} <<END_SCRIPT quote USER ${USER} quote PASS ${PASSWD} cd backup lcd ${DIRNAME} put ${FILE} quit END_SCRIPT コマンドラインからスクリプトを直接実行すると、> sudo ./mybackup.shスムーズに実行されてバックアップファイルがftpに配置されますが、実行中はcron他のpre-ftpおよびpost-ftp(ログファイルの統合や電子メール送信など)結果)ステップは正常に動作します。ログファイルからも何も取得できず、原因を特定することもできません。 注:-dyndns.bizのIPは、プランを支払ったため変更されません。

2
Ubuntuに挿入された場合のSDカードの自動マウント
SDカードがカードリーダーに挿入されると、SDカードを自動マウントするBASHスクリプトを記述して、すべての写真をHDDのフォルダーに移動し、各ファイルの名前を写真の撮影日時に変更しようとしています。 それを達成する方法はありますか?GUIなしでUbuntu 12.04を使用しています

2
シェルスクリプトを実行しようとするとエラーが発生する(Linux)
次のスクリプトを実行しようとしています。以前に問題なく実行しましたが、今ではエラーが発生します。 #!/bin/bash # init function pause(){ read -p "$*" } echo & echo "(Website):" &&read input output=$(ping -c 1 "$input" 2>/dev/null) if [ $? -eq 0 ]; then ip=$(printf '%s' "$output" | gawk -F'[()]' '/PING/{print $2}' 2>/dev/null) clear echo echo "$ip"; echo -n $ip | xclip -selection c echo echo …

1
変数でのbashコマンドエラーのキャッチ
私はpsqlbashスクリプトで(PostgreSQL)コマンドを使用しています: function create_database () { sudo -u postgres psql -c "CREATE DATABASE $1 WITH OWNER $2;" 2>ERROR if [[ $? -ne 0]; then echo "error -> $ERROR" return 1 else: .... return 0 } 私はerrorそれをキャッチして変数に渡そうとしていますが、変数は空です。

2
バッチスクリプトを使用して、ドメイン内のユーザーのブラウザーのお気に入り(ブックマーク)へのWebサイトリンクを追加するにはどうすればよいですか?
ユーザーがバッチスクリプトなどを使用してWindowsにログインするときに、すべてのユーザーのブックマーク(IEのお気に入り)にいくつかのWebサイトのリンクを自動的に追加したいですか? それを行うためのWindows Server 2003のポリシーはありますか? もう1つ: たとえば、ウェブサイトをグループに分類したい:

2
BASH-文字列内の部分文字列の出現回数を数える
Bashを使用して文字列内の部分文字列の出現回数をカウントするにはどうすればよいですか? 例: この部分文字列が何回か知りたい... Bluetooth Soft blocked: no Hard blocked: no ...この文字列に出現しています... 0: asus-wlan: Wireless LAN Soft blocked: no Hard blocked: no 1: asus-bluetooth: Bluetooth Soft blocked: no Hard blocked: no 2: phy0: Wireless LAN Soft blocked: no Hard blocked: no 113: hci0: Bluetooth Soft blocked: no Hard blocked: no 注I: …

4
2つのディレクトリ内のファイル名の一部を比較する
Directory1とDirectory2という2つのディレクトリがあります。両方とも、いくつかの数字と文字列を含む画像を含んでいます。Directory1には、番号と001_blur.pngのような_blur文字列のぼやけた画像が含まれています。約62kの画像が含まれています。Directory2には、001_fine.pngなどの対応する細かい画像が含まれています。60kの画像が含まれています。 問題は、Directory2に対応する素晴らしいペアがあるDirectory1からのぼやけた画像をいくつか失ったことです。そして、Directory1に対応するぼかし画像があるDirectory2のいくつかの素晴らしい画像を失いました。 今、私は対応するペアを持つ画像だけを保存したいと思います。対応する画像の1つが存在しない場合、それらを削除し、画像をペアで配置したいだけです。 私のディレクトリ形式は次のとおりです。 Directory1 001_blur.png 002_blur.png 003_blur.png 004_blur.png Directory2 001_fine.png 002_fine.png 003_fine.png 005_fine.png 注:001ペア、002ペア、および003ペアを保持したいと思います。ぼかしをDirectory3にコピーし、Directory4にコピーします。 画像は各フォルダーで約60kなので、この問題にはアルゴリズムの複雑さもあると思います。Directory1から1つの画像を取得し、Directory2で対応する細かい画像を検索しようとすると、複雑さが高くなると思います。それでは、このアルゴリズムの複雑さをどのように扱うのでしょうか?

1
.batスクリプトでURLに引用符を適用するにはどうすればよいですか?
CMDで機能するcurlコマンドの一般的な形式は次のとおりです。 -o latest.dump -L "カールhttps://s3.amazonaws.com/hkpgbackups/app28197640@heroku.com/xxxx.dump?AWSAccessKeyId=AKIAJSCBEZJRDOTGNGZQ&Expires=1411489500&Signature=%2F5zwQNZNN0H2XSR4wSqQ%2FFExBdI%3D " しかし、URLは動的に生成されるため、これを.batスクリプトに入れます。問題ありませんので、紙に書かれている.batスクリプトを次に示します。 @echo off for /f "delims=" %%a in ('heroku pgbackups:url') do @set this_url=%%a ECHO %this_url% curl -v -o latest.dump -L %this_url% しかし、最初の '&'で予想されるように、出力はベイルします。のエコーthis_urlは、引用符付きの完全な文字列を示しています。この文字列を引用符でカプセル化するにはどうすれば追加、または強制できますか? 私は試みましたが、それは同じタイプのエラーを返します: cmd /k ""curl -v -o latest.dump -l" "('heroku pgbackups:url')"" UnixやCYGWINでこれを行わない理由を尋ねる人もいるかもしれません。最初にやった。このコマンドは、私のOS Xパーソナルマシンで完全に機能します。CYGWINで動作するはずですか?まあ、私は同じタイプのエラーを受け取ります。 uri_escapeライブラリを使用してPerlスクリプトを組み込み、挿入しようとしました。ただし、渡されるURLはcurlによって認識されません。 単一引用符で囲まれた出力を強制すると、URLが修正されますが、URLの最後の数文字内に閉じた単一引用符が配置されるため、URLがカールしなくなります。 heroku pgbackups:urlCMDコンソールでの出力は次のとおりです。 "https://s3.amazonaws.com/hkpgbackups/app28197640@heroku.com/b080.dump?AWSAccess KeyId=AKIAJSCBEZJRDOTGNGZQ&Expires=1411657655&Signature=MqzqBitAN7MADiLAsdAN4ZQk RH0%3D" 上記の.batファイルの出力は次のとおりです。 https://s3.amazonaws.com/hkpgbackups/app28197640@heroku.com/b080.dump?AWSAccessK …

1
bashスクリプトの「read」の変数は未定義です
i3wm画面モード(外部画面、内部画面、すべて、またはミラー)を切り替えるために使用するこのbashスクリプトがあります。スクリプトの最初の部分は、画面の名前を取得します。次の部分をコピーして端末で実行する場合: #!/bin/bash xrandr|grep " connected primary"|IFS=" " read INTERNAL_OUTPUT con xrandr|awk '/ connected/ && !/ primary/'|IFS=" " read EXTERNAL_OUTPUT con echo internal monitor is $INTERNAL_OUTPUT echo external monitor is $EXTERNAL_OUTPUT ... 私は次のようなものを得ます $ ./script.sh internal monitor is eDPI external monitor is DPI-1 しかし、実際のスクリプトを実行すると、変数は空になり、表示されるのはすべて $ ./script.sh internal monitor is external monitor …

1
ディレクトリに親フォルダを作成するより古いファイルを見つけて、そこに移動します
私は次のことを行うbashスクリプトを作成しようとしています。 findコマンドを使用して、7日より古いファイルを検索しfind . -type f -mtime +7 ! -iname '.*'(、見つかったファイルの親ディレクトリを取得parent directoryし、別のディレクトリに名前を持つ新しいフォルダーを作成し、_todaysDate(date '+%m%d&y)を追加して、そこに見つかったファイルを移動します。 これを行うには何が最善でしょうか?while?for?doループ?どうやってそれをやりますか? 前もって感謝します! 編集:ファイル構造の例を示します folder1 - folder2 -oldfile1 folder1a - folder2a -folder3a -oldfile2 ---- In a new directory, a new folder would be created ( and that folder's name would be the parent folder of the old file, and …

2
Bash:if [tar = error] [closed]の場合
私はシェルスクリプトにメッセージを書くかどうかに応じて欲しい tar 成功または失敗しますが、このスクリプトは正しく機能しません。 TAR=$(tar -cf Archiv.tar myfolder/ myotherfolder/) if [ ! "$TAR" = "/dev/null" ]; then echo "success" else echo "error - no such Directory or file" fi 何が問題ですか?

1
この「検索」コマンドがすべてのディレクトリをスキャンするのはなぜですか?
再帰的にスキャンしたいだけでDocuments、その「親」フォルダーを残したくない。私のスクリプトはファイルシステム全体を再帰的にスキャンしますが、このスクリプトのどの要素がそれを引き起こしているのかわかりません。これは私が持っているものです: #/bin/sh for f in $(find /home/rmintz/Documents/ -type f -name "*jpg") do echo $f done このbashスクリプトがDocumentsフォルダーのみをスキャンし、他の何もスキャンしないようにするには、何を変更する必要がありますか? ターミナルの出力がの領域外のディレクトリを表示するので、これはファイルシステム全体をスキャンしているという印象を受け/home/rmintz/Documentsます。 例は/usr/libです。

1
更新するスクリプト
バッテリーのない古いラップトップを使用しているため、ウェイクアップ時間は1980年です。したがって、NTPサービスを使用して時間を現在の時間に更新します。これを実現するスクリプトはありますか。私のOSはlubuntu 15.10です
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.