最新記事

セキュリティのためにプライベートシェルスクリプトをどこに配置する必要がありますか?
shell-script
shell
zsh

セキュリティのためにプライベートシェルスクリプトをどこに配置する必要がありますか?

私はいくつかのカスタム機能を作るためにshを学んでいます。私はスタック交換で確認し、誰かが私の個人的なスクリプトを下に置くと、実際にそのようなことをするよう~/binなマルウェアを探索できると言ったので、私の個人的なスクリプトのための安全な場所を探しています。ls()rm -rf

Admin

インデックスから文字列を切り取り、01から12の範囲にあることを確認してください。これをシェルでどのように実装しますか?
shell-script

インデックスから文字列を切り取り、01から12の範囲にあることを確認してください。これをシェルでどのように実装しますか?

文字列があります。 bDate = 20221201 5-6の文字が01から12の範囲にあることを確認したいと思います。この例では、12と一致する必要があります。 20221309の場合、5〜6の文字が01〜12の範囲に属していないと言うべきですか?私はシェルにカットを使用しています。

Admin

bashで次の文字列を正規表現に一致させるにはどうすればよいですか?
bash
shell-script
regular-expression

bashで次の文字列を正規表現に一致させるにはどうすればよいですか?

文字列の下で条件付き演算子を比較する必要があります。したがって、特定のタスクは、81.1.4_r4345が特定のタスクを実行するか、「完了」と一致する場合にのみ実行されます。 vasanth-releases_81.1.4_r4345.tar.gz vasanth-releases-done.tar.gz If [[ $var == ‘vasanth-releases_{0-9}_{0-9}.tar.gz ]] ; then echo ‘True’ Elsif [[ $var == ‘Vasanth-releases-{a-z}.tar.gz ]]; then echo ‘False’ else echo ‘default’ fi 上記の試みは期待どおりに機能しませんでした。したがって、これら2つのファイルには正規表現形式が必要です。この問題を解決するのに役立ちますか? ありがとう

Admin

別画面で一連の機能を実行する
bash
shell-script
gnu-screen
function

別画面で一連の機能を実行する

スタンドアロン画面でスクリプトの他の場所で定義された複数の関数を呼び出すことはできますか?たとえば、 #!/bin/bash Method1() { ... } Method2() { ... } Method3() { ... } Method4() { ... } cd "$DST_DIR" screen -dm -S "$(date +%s)_PROCESS" -L { Method1 Method2 Method3 Method4 }

Admin

このbashスクリプトをsudoとして実行してコンテンツをrootとして実行する方法
shell-script
permissions
sudo

このbashスクリプトをsudoとして実行してコンテンツをrootとして実行する方法

sudoでスクリプトを実行する方法については、次の2つの説明があります。 sudoコマンドを実行するユーザーには、ファイルに対する実行権限も必要です。 ファイル内のコマンド以外のファイルのみがrootとして実行されます。 私が聞いていることを疑う理由はありませんが、次の設定が実行されていて、上記の2つの文が正しい場合は、その理由を知りたいと思います。 次のスクリプトがあります。 /var/www/bash_scripts/test/set_permissions.sh スクリプトには以下が含まれます。 chown -R jason:www-data /var/www/test.site.com find /var/www/test.site.com -type f -exec chmod 664 {} \; find /var/www/test.site.com -type d -exec chmod 775 {} \; このスクリプトの権限は次のとおりです。 -rwxrwxr-- 1 root root 200 Nov 21 22:49 set_permissions.sh 私の/etc/sudoersファイルには、下部に次の行が追加されています。 www-data ALL=(ALL) NOPASSWD: /var/www/bash_scripts/test/set_permissions.sh user で実行される PHP プロセスでスクリプトを実行すると、www-dataスクリプトが期待どおりに実行され、その中のすべてのコマンドが実行されます。 上記のステートメント1.が正しい場合、このスクリプトはrootユーザーのみが実行できるため、絶対に実行しないでください。上記のステートメント2が正しい場合、スクリプトのコマンドは実行されません。 私はこの2つの声明が正しいかどうかを理解しようとしています。それでは、上記の動作を引き起こすために何をしましたか? 編集する www-data持つ/var/www/test.site.com PHPコードは次のようにコマンドを実行します。 exec('sudo /var/www/bash_scripts/site/test/set_permissions.sh 2>&1')

Admin

ksh bashとzshをダッシュ​​するためにデフォルトのコマンドを移植する方法はありますか?
bash
shell-script
zsh
ksh
dash

ksh bashとzshをダッシュ​​するためにデフォルトのコマンドを移植する方法はありますか?

ダッシュ(およびbash zshや他のシェル)でlocalこのコマンドが実行することは、変数の範囲を対応する関数(および場合によってはサブ関数)に制限することです。これにより、変数をこの関数に制限できます。内部構造のみ(場合によってはサブ関数呼び出し)。 たとえば、 testlocal(){ local IFS IFS=123 echo "internal IFS = $IFS" testdescend } testdescend(){ echo "descended IFS = $IFS" } IFS=abc testlocal echo "external IFS = $IFS" ダッシュ(bashとzshを含む)で実行すると、次の出力が生成されます。 $ dash ./script internal IFS = 123 descended IFS = 123 external IFS = abc これは、IFSがまだ存在することを意味します。地元の関数(および子孫)へ。 ただし、kshは異なり、次は許可されませんlocal。 $ ksh ./script ./mt2[3]: local: not found [No such file or directory] 「local」という単語を「typeset」に変更すると、スクリプトはkshでほとんど実行可能ですが、dashでは認識されませんtypeset。 functionそして、kshでスコープを動的にするには(呼び出された関数まで)、関数は次の単語を使用して定義する必要があります。 function testlocal { typeset IFS IFS=123 echo "internal IFS = $IFS" testdescend } これはダッシュの移植性をより複雑にする。 問題は、元のスクリプトがkshでも機能するようにするにはどうすればよいですか?どのシェルがスクリプトを実行しているかをテストするのを避けることはできますか?

Admin

ターミナルプログラムで実行されているコンテンツをバックグラウンドで送信する
bash
shell-script

ターミナルプログラムで実行されているコンテンツをバックグラウンドで送信する

端末で実行するスクリプトがあり、いくつかの出力が印刷されます。たとえば、キーを押さずに(そしてスクリプトを変更せずに)5秒後にバックグラウンドで送信したいとします。 Bashスクリプトのようにスクリプトを起動してしばらくスリープしてから、実行中のアプリケーションをバックグラウンドで送信します。いったんバックグラウンドに入ると、出力に気になりません。 UPD:うまくいかないもの: nohup afterスクリプトの使い方&- 出力がまだ端末に送信されている間、すぐにバックグラウンドで送信されます(これは私が避けたいものです)

Admin

次のコンテキストで使用されるawkコマンドの説明
linux
shell-script
awk

次のコンテキストで使用されるawkコマンドの説明

Prvt_Yadvは、スクリプトを使用してテキストファイルのパッケージリストからパッケージをインストールする方法を説明するいくつかのコードを書きました。 私の質問は、彼が選んだ組み合わせを選んだ理由を説明できる人はいますか? 上記の方法を使わずに動作させることができましたが、非常に不安定です。 私のコード: #!/bin/bash #===================================== # Path to Instalation & Scripts #===================================== path2Dev="/home/`id -u -n`/Development/Install" input="$path2Dev/DepList_Fedora.txt" #-------------------------------------- #===================================== ## Make stringBuild Global #===================================== export stringBuild=" " #-------------------------------------- #===================================== ## Build string with no Fluff ## from List of packages #-------------------------------------- while IFS= read -r line do stringBuild+=" $line" done < "$input" ### End of Loop ### ############################# # Get Dependencys for Build # from values in ("input") #============================ sudo dnf group install --assumeyes "C Development Tools and Libraries" ; echo $stringBuild ## De-Bug sudo dnf install --assumeyes "$stringBuild" ## Tried `$stringBuild` and $stringbuild Prvt_Yadvコード: sudo dnf install --assumeyes $(awk -F ',' 'BEGIN {ORS=" "} {for(i=1;i<=NF;i++) {print $i}}' $input) これが元のコードよりも安定して見えるのはなぜですか?理由を説明できますか? DepList_Fedora.txt bison-devel arm-none-eabi-gcc arm-none-eabi-gcc-cs arm-none-eabi-gcc-cs-c++ arm-none-eabi-binutils-cs patch gperftools-devel ncurses-devel cdk cdk-devel ccrtp ccrtp-devel doxygen python3-hidapi mingw64-hidapi hidapi-devel xclip autoconf213 libtool-ltdl-devel python2-devel guile nodejs-node-expat mingw64-libltdl libusb-devel libusb autoconf texinfo libtool libftdi-devel gcc-arm-linux-gnu flex gperf git bison zlib

Admin

if文でテスト式をいつ使用する必要がありますか?
bash
shell-script

if文でテスト式をいつ使用する必要がありますか?

Bashスクリプトの場合は、ifステートメントでテスト式をいつ使用するかを混乱させます。 たとえば、次のように動作します。 if finger | grep -q alex しかし、以下の場合はそうではありません。 if [ finger | grep -q alex ] ただし、次のことができます。 if [ 3 -gt 5 ] それでは、いつテスト式を使用し、いつ使用しないでください。また、上記のコマンドでテスト式を使用する方法はありますか?

Admin