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

Bash(Bourne-Again SHell)は、Ubuntuのコマンドラインインターフェースでデフォルトで使用されるシェルです。

1
複数のディレクトリで使用可能な合計ディスクスペースを取得する
du -shについて知っているので、指定されたディレクトリに使用される合計ディスク容量がわかります。 私の問題は、興味のあるディレクトリが多くのサブディレクトリに散在していることです。これらのディレクトリを提供する正しい「find」コマンドがあります。目標は、見つかったディレクトリを渡し、これらのディレクトリが使用する合計ディスク容量を取得することです これらのディレクトリを引数としてduに渡すと、そのディレクトリの合計が使用されますが、総計は使用されません。総計を取得したいです。 例du -sh dir1 dir2は次のような出力を与えます 17k dir1 55K dir2 総計を取得するには何をする必要がありますか?

4
bashシェルの複数行のif条件
引数を取り、必要に応じて何かを実行するbashシェル関数があります。 do_somthing() { if [need to do something on $1] then do it return 0 else return 1 fi } いくつかの引数を指定してこのメ​​ソッドを呼び出し、少なくとも1つが成功したかどうかを確認します。 私は次のようなものを試しました: if [ do_something "arg1" || do_something "arg2" || do_something "arg3" ] then echo "OK" else echo "NOT OK" fi そのための正しい構文は何ですか? 編集 -また、最初の条件が真であっても、他のすべての条件が評価されるようにします。 おかげで、
19 bash  scripts 


4
「/ proc / * / environ」ファイルを個別の行に分割するにはどうすればよいですか?
/proc/*PID*/environファイルの内容をより読みやすい形式で取得しようとしています。以下に示す方法でそれを行うことができますが、これは適切な方法ではないと確信しています。 $ cat "/proc/$(pgrep gnome-session -n -U $UID)/environ" USER=spasTEXTDOMAIN=im-configXDG_SEAT=seat0XDG_SESSION_TYPE=waylandSHLVL=1QT4_IM_MODULE=ximHOME=/home/spasDESKTOP_SESSION=ubuntuGNOME_SHELL_SESSION_MODE=ubuntuDBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/busIM_CONFIG_PHASE=2LOGNAME=spasGTK_IM_MODULE=ibusJOURNAL_STREAM=9:147845_=/usr/bin/gnome-sessionUSERNAME=spasXDG_SESSION_ID=70PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/binXDG_RUNTIME_DIR=/run/user/1000LANG=en_US.UTF-8XDG_CURRENT_DESKTOP=ubuntu:GNOMEXDG_SESSION_DESKTOP=ubuntuXMODIFIERS=@im=ibusSHELL=/bin/bashGDMSESSION=ubuntuTEXTDOMAINDIR=/usr/share/locale/XDG_VTNR=2QT_IM_MODULE=ximPWD=/home/spasCLUTTER_IM_MODULE=ximXDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktopXDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg $ cat -e "/proc/$(pgrep gnome-session -n -U $UID)/environ" USER=spas^@TEXTDOMAIN=im-config^@XDG_SEAT=seat0^@XDG_SESSION_TYPE=wayland^@SHLVL=1^@QT4_IM_MODULE=xim^@HOME=/home/spas^@DESKTOP_SESSION=ubuntu^@GNOME_SHELL_SESSION_MODE=ubuntu^@DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus^@IM_CONFIG_PHASE=2^@LOGNAME=spas^@GTK_IM_MODULE=ibus^@JOURNAL_STREAM=9:147845^@_=/usr/bin/gnome-session^@USERNAME=spas^@XDG_SESSION_ID=70^@PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin^@XDG_RUNTIME_DIR=/run/user/1000^@LANG=en_US.UTF-8^@XDG_CURRENT_DESKTOP=ubuntu:GNOME^@XDG_SESSION_DESKTOP=ubuntu^@XMODIFIERS=@im=ibus^@SHELL=/bin/bash^@GDMSESSION=ubuntu^@TEXTDOMAINDIR=/usr/share/locale/^@XDG_VTNR=2^@QT_IM_MODULE=xim^@PWD=/home/spas^@CLUTTER_IM_MODULE=xim^@XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop^@XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg^@ $ cat -e "/proc/$(pgrep gnome-session -n -U $UID)/environ" | sed 's/\^@/\n/g' USER=spas TEXTDOMAIN=im-config XDG_SEAT=seat0 XDG_SESSION_TYPE=wayland ... に特定の値を割り当てる必要があるかもしれませんが$IFS、それは何ですか?上記の結果を達成するための適切な方法は何ですか?

3
エイリアスコマンドに引数を渡すことはできますか?
aliasコマンドで引数を渡すことができるかどうかを知りたいです。 例えば: alias d="dmesg|grep -iw usb|tail -5" これでd、最後の5行が印刷されます。dを使用して異なる行数を出力する場合は、エイリアスコマンドの宣言をd再度変更する必要があります。 行数を変更するために宣言を再入力する必要がないように、エイリアスの宣言を変更する方法はありますか。行数を引数として渡す際に、エイリアスを宣言することを組み込むようにd?または、これを解決する他の方法はありますか?

2
Bashコマンドプロンプトに埋め込まれたCPU温度
CPU温度を取得し、それをコマンドプロンプトに埋め込むことができるかどうか疑問に思いました。 これは私の出力ですsensors: $}-sensors coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +55.0°C (high = +87.0°C, crit = +105.0°C) Core 0: +55.0°C (high = +87.0°C, crit = +105.0°C) Core 1: +52.0°C (high = +87.0°C, crit = +105.0°C) このgrep機能を使用して温度をコマンドプロンプトに埋め込む方法を教えてください。
18 bash 

1
シェルのロードが非常に遅い-Ubuntu 14.04
ターミナル(ctrl + alt + t)を開くと、プロンプトの読み込みに時間がかかります。私は同じ問題についてここで読んでいましたが、彼らの解決策のどれも私を助けませんでした。ターミナルを開くと、ロードに約4〜5秒かかります。プロンプトが表示される直前に、白いスプラッシュ画面のようなプログラムのポップアップがポップアップします。特定のパッケージ/ソフトウェアをインストールした後にこれが起こったとは思わない。助言がありますか? 前もって感謝します。

2
シェルスクリプトが行うすべてのアクティビティを記録する簡単な方法はありますか?
シェルスクリプトから発生したすべてのアクティビティをファイルに記録する簡単な方法はありますか? スクリプトがあります。エコーの「命令」などの出力や、他のプログラム出力を出力します。私はコマンドを知っています: command | tee -a "$log_file" そして command >> logifle.log 私が求めているのは、ロギング用のシェルパラメータがあるか、使用できるsetコマンドなどがあるかどうかです。必要がなければ、何十ものリダイレクトやTシャツをファイルに追加する必要はありません。私はまだ標準出力を取得したい-私はそれもログに記録したい:

4
クラッシュしたときにアプリケーションスクリプトを再実行しますか?
ラップトップで常に実行する必要があるアプリケーションがいくつかあります。 これらのアプリケーションを起動するには、bashスクリプトを使用します。私のスクリプトには、次のようなループがあります。 while true; do xterm done これにより、アプリケーション(xtermこの場合)が実行され、アプリケーションがクラッシュした場合、ループが再開します。 これには、このループから「クリーン」な出口がないという欠点があります。したがって、ユーザーの意図が閉じることであったxtermとしても、ループはそれを再び開始します。 bashスクリプトからアプリケーションを起動する方法、実行中かどうかを監視する方法、スクリプトがクラッシュした場合に再実行する方法、またはユーザーが適切に閉じた場合は何もしない方法はありますか?
18 bash  scripts 

7
bashスクリプトの実行後にターミナルを終了します
コマンドbashを使用して特定のファイル(主にpdfファイル)を開くスクリプトを作成しようとしていますgnome-open。また、pdfファイルを開いたら、端末を終了させます。 私はexitスクリプトの最後に追加しようとしましたが、それはターミナルを閉じません。私は自分の質問に対する答えをオンラインで検索しようとしましたが、適切な質問が見つかりませんでした。皆さんが助けてくれたら本当にありがたいです。 すべての端末ではなく、コマンドを実行した端末を強制終了するだけの回答が必要ですか?私が受け入れた以前の回答は、開いているすべてのターミナルウィンドウを強制終了します。今日までこれが事実だとは思いませんでした。

1
Bashタブの完了: '-bash:一致する `)の検索中に予期しないEOF -bash:構文エラー:予期しないファイルの終わり
irb次のコマンドを使用して、ファイルから特定の環境変数を使用してセッションに参加しようとしています。 $ env $(cat env.sh) irb しかし、Tab入力env.して完了した後にプレスを試みると、次のエラーが表示されます。 $ env $(cat env.-bash: unexpected EOF while looking for matching `)' -bash: syntax error: unexpected end of file もう1つの興味深い点は、rootとしてログインしている場合、このエラーが発生しないことです。 の出力はfind ~ -uid 0次のとおりです。 $ find ~ -uid 0 /home/(redacted)/.rpmdb /home/(redacted)/.rpmdb/Group /home/(redacted)/.rpmdb/Conflictname /home/(redacted)/.rpmdb/Installtid /home/(redacted)/.rpmdb/Sha1header /home/(redacted)/.rpmdb/Providename /home/(redacted)/.rpmdb/__db.002 /home/(redacted)/.rpmdb/Requirename /home/(redacted)/.rpmdb/Sigmd5 /home/(redacted)/.rpmdb/__db.001 /home/(redacted)/.rpmdb/Obsoletename /home/(redacted)/.rpmdb/.dbenv.lock /home/(redacted)/.rpmdb/Name /home/(redacted)/.rpmdb/Basenames /home/(redacted)/.rpmdb/Triggername …

6
変数に向けられたダイアログボックス入力を取得する方法は?
私は自分でbashスクリプトを教えていて、問題にぶつかりました。「read」コマンドを使用してユーザーからの入力を受け取り、その入力を後でスクリプトで使用する変数にするスクリプトを作成しました。スクリプトは動作しますが、... 「ダイアログ」を使用してセットアップできるようにしたいと思います。私はそれを見出した 'dialog --inputbox'は出力を 'stderr'に送信します。変数として入力を取得するには、ファイルに送信してから取得する必要があります。これを説明するために見つけたコードは次のとおりです。 #!/bin/bash dialog --inputbox \ "What is your username?" 0 0 2> /tmp/inputbox.tmp.$$ retval=$? input=`cat /tmp/inputbox.tmp.$$` rm -f /tmp/inputbox.tmp.$$ case $retval in 0) echo "Your username is '$input'";; 1) echo "Cancel pressed.";; esac 2>でsdterrを/tmp/inputbox.tmp.$$に送信していることがわかりますが、出力ファイルは「inputbox.tmp.21661」のように見えます。ファイルをcatしようとすると、エラーが発生します。そのため、-inputboxからユーザー入力を変数として取得することはできません。 サンプルスクリプト: echo " What app would you like to remove? " read …
18 bash  dialog 

2
bash:予期しないトークン `( 'の近くの構文エラー
エラーを取得するwget経由でflaregetダウンロードマネージャをダウンロードしようとしています wget http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64(stable)_deb.tar.gz bash: syntax error near unexpected token `(' なぜそのエラーが発生し、その解決策は何ですか?
18 bash  scripts  wget 


5
共有ライブラリlibSDL-1.2.so.0のロード中にエラーが発生しました
私はubuntuサーバーにioquakeをインストールしようとしています。 実行しようとすると、次のメッセージが表示されます。 # ./ioquake3 ./ioquake3.x86_64: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory 私はすべてが正常に動作していると思いました、ここにlibSDLがあります: # cd /usr/lib64 # /usr/lib64# ls -l total 2308 lrwxrwxrwx 1 root root 15 Oct 15 00:25 libSDL-1.1.so.0 -> libSDL-1.2.so.0 lrwxrwxrwx 1 root root 20 Oct 15 00:25 …

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