- 1 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 17:54:23.25 .net]
- シェルスクリプトの総合スレです。
□お約束 ・特記なき場合はBourne Shell(/bin/sh)もしくはPOSIX準拠の互換シェルがデフォルトです。 bash/zsh/ksh/ash/dash/yash/poshなどの専用機能に依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。 FreeBSDユーザは/bin/shの正体がashなので注意。 ・POSIXについてのリンクは https://en.wikipedia.org/wiki/POSIX にまとめられています 最新の仕様はこちらへ pubs.opengroup.org/onlinepubs/9699919799/ (左上の「Shell & Utilities」 から参照することができます。) ・v7 shに一番近くて、現役(?)のshは、OpenSolaris由来のheirloom sh。 src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/ heirloom.sourceforge.net/sh.html ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) ・シェルスクリプトのことをシェルってゆうな □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも awkまたはperlの方が適した処理にはそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 □回答者への注意事項: ・シェルスクリプトでの処理方法を質問しているのに、よくわからずに 「そういうのはperl使いましょう」と回答するのはやめましょう。 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。 質問に対して問題が間違ってるといちゃもんをつけるのもやめましょう 前スレ シェルスクリプト総合 その26 https://mevius.5ch.net/test/read.cgi/unix/1489979246/
- 725 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 09:40:49.35 .net]
- うちの研究室もすごいことになった。
ところで前々から関数のなかで alias が展開されないのを歯痒くおもっていたので eval 使えばいいというのは非常に有益な Tips だわ。
- 726 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 10:09:39.01 .net]
- あまりにもPOSIX、POSIXしつこいから、POSIXでNGにしたったわ
- 727 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 10:13:14.51 .net]
- PSOIXでいこう
- 728 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 10:15:28.33 .net]
- P0SIX(いやがらせ)
- 729 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 10:20:36.56 .net]
- P051X
- 730 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 10:23:39.71 .net]
- ぽじっくす
- 731 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 17:53:22.33 .net]
- >>699
makefile とか crontab でもエイリアス無視だけど evalならいけるのかな 試してみよう
- 732 名前:名無しさん@お腹いっぱい。 [2018/06/18(月) 20:47:12.93 .net]
- oldcar-purchase.com/
- 733 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 04:10:29.03 .net]
- 関数の中、もしくはmakefileやcrontabで
aliasを使いたい状況っていうのがよくわからないが どんなときに使うの? aliasではなく変数とかじゃ駄目なの?
- 734 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 04:54:42.99 .net]
- 自分は引数を取らず固定されたフィルタはaliasで定義することにしている
例えばeraelコマンド(ERAce Empty Line)。 alias erael='sed -e "/^$/d"' ただ大抵はシェルスクリプトの先頭に記述するのであなたの言う通り関数の中で宣言する意図は分からん。
- 735 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 05:16:14.31 .net]
- つづりeraseやで
- 736 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 05:53:06.78 .net]
- >>708
使い方としてはわかったけど、 ぶっちゃけそれだって関数作ればいいだけなんだよなぁ erase() { sed -e "/^$/d" "$@"; }
- 737 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 06:00:33.38 .net]
- >>710
いやそうなんだけど 「引数を取らず固定されたフィルタ」 ↑これを実現するのに関数は大仰な気がしてきてな。
- 738 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 06:15:17.17 .net]
- 関数とエイリアスの使い分けに意味はあるの?
使用メモリ?性能?
- 739 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 06:31:47.07 .net]
- >>712
いやまったく大差ない。 ただただaliasというだけ 分かってると思うが俺は別に「使え!」なんて言ってないから そんな気にする必要ないぜ。 個人的な問題だから。
- 740 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 07:04:14.39 .net]
- みんな知ってるかい?
関数の中で関数を定義できるってことを foo() { bar() { echo bar } } foo bar
- 741 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 07:22:52.49 .net]
- 全角字下げやめてくれ
コピペで試せん
- 742 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 07:27:20.24 .net]
- foo() {
bar() { echo bar } } foo bar
- 743 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 08:03:40.13 .net]
- 5chに貼られたソースコードをコピペするってwセキュリティ意識ゼロかよw
絶対こんなの相手に発注したく
- 744 名前:ヒぇww []
- [ここ壊れてます]
- 745 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 13:37:44.18 .net]
- アクalias飲みてぇ
- 746 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 18:46:56.46 .net]
- >>717
たかが数行のソースが危険かどうかもわからん奴には発注したくないな
- 747 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 02:21:04.28 .net]
- somefunc() {
echo "${1:='need a arg'}" } のような関数を作ったのですが引数なしで起動すると -bash: $1: この方法で割当はできません と怒られるのですがどうすればいいですかね。
- 748 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 03:20:33.94 .net]
- somefunc() {
arg="$1" echo "${arg:='need a arg'}" }
- 749 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 03:34:23.66 .net]
- >>721
ありがとうございます! できました! すいませんが、もしよければなぜ直接引数に:=変数置換を適用できないのか教えていただけないでしょうか。 例えば${1:-aaa}などはごく普通にできるので、不思議です。
- 750 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 05:12:57.83 .net]
- bash: $1: この方法で割当はできません
bash: $1: cannot assign in this way 代入文を使って位置パラメータへの代入を行うことはできません。 Positional parameters may not be assigned to with assignment statements.
- 751 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 06:53:00.27 .net]
- すべての言語で引数に対する代入は禁止されればいいのに
- 752 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 07:57:59.37 .net]
- 引数に代入できる言語って例えば?
- 753 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 08:43:18.41 .net]
- ば…bat
- 754 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 10:20:31.09 .net]
- それ言語?
- 755 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 11:38:13.87 .net]
- Cだとargvは一度どこかに書き出さないと置換とか操作できないよね。
- 756 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 12:45:30.95 .net]
- >>728
別に直接書き換えもできる。constを「自分で」付ければできないようにもできるけど Cで書き換えるのは危険すぎるだけだな。配列/文字列等のメモリ境界保護なんてないから。OSによってはargvがメモリ保護域にあるのもあるだろけど
- 757 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 12:48:49.26 .net]
- >>728
argv の指す先は変更できないけど argv 自体は変更し放題
- 758 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 12:56:35.45 .net]
- >>730
argvの指す先(char **argv/*argv[]の中身/値でいいの?)も変更できるよ argv = myArgv; argv[1] = myArg; argv[1][0] = myChar; どれもできる
- 759 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 15:25:21.41 .net]
- ああそうか。728だけど,すごいまぬけな発言をしてたわ。
Cでのargvはあくまで約束事としての変数名だからなんの保護・制約も掛けられてないのか。 一方シェルスクリプトでは引数変数を明確に他と区別できるようになってる。 ただし半保護状態。
- 760 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 05:57:06.66 .net]
- script(1)コマンドかそれと似たCLI記録ツールで、
~/.profile(←ここに~/.bashrcなどを読みこむコマンドが書いてある)を読み込ませたいのですがどうすればいいですかね。
- 761 名前:名無しさん@お腹いっぱい。 [2018/06/21(木) 06:34:26.14 .net]
- >>733
#!/bin/sh exec /bin/bash --init-file "$HOME"/.profile "$@" こういうスクリプトを書く ファイル名を mysh でホームに保存したとして、次のようにして script に使わせる env SHELL="$HOME"/mysh script
- 762 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 08:42:01.32 .net]
- >>733
surce ~/.profile ではだめなの?
- 763 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 09:33:47.42 .net]
- ✕ surce
△ source ◯ .
- 764 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 09:34:32.68 .net]
- 1行目は×な。
- 765 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 09:45:45.51 .net]
- bashの場合、インタラクティブでログインシェルでなければ.bashrcを読むはずだけど、それじゃ足らんの?
- 766 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 15:08:24.51 .net]
- >>734
ありがとうございます! できました!
- 767 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 15:25:56.39 .net]
- 733です。すいません。もうひとつ訊きたいことがあるのですが
script(1)実行中はCO
- 768 名前:LUMNS=80,LINES=25に固定したいです。
しかしそのmyshに export COLUMNS=80 などと記述しても反映されません。 ~/.profileなどでは特にCOLUMNSの値を設定している訳ではないです。 これどうすればいいですかね [] - [ここ壊れてます]
- 769 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 17:29:46.87 .net]
- stty cols 80 rows 25
なんかLINESもってとこから、ターミナルのウィンドウサイズなんぞもってぽいけど、それは個々のターミナルアプリ次第&一方通行っぽい(COLUMNSの値を設定している訳ではないのはそゆこと)けど
- 770 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/22(金) 07:10:56.19 .net]
- シェルスクリプトってeval使えばメタプログラミングっぽいことできるよね。
例えば引数をfor文で増加さしてeval arg$i=\$$iみたいな。
- 771 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/22(金) 08:39:33.18 .net]
- >>742
evalはインタープリタそのものだからね
- 772 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/22(金) 08:56:09.19 .net]
- evalは一番最初に現れたプリミティブなメタプログラミング機能だからまあ当然だな。
ちな最初にeval を発明した言語はLisp な。
- 773 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/22(金) 15:33:32.30 .net]
- eval is evilを発明したのはLISPか
- 774 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 05:10:08.14 .net]
- eval is evilはJSでは
- 775 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 10:04:22.34 .net]
- evalは強力すぎて危険だからどの言語でも濫用はevil扱いだと思う。
REPLみたいにevalがぴったりした応用もあるから禁止はできんし、 シェルスクリプトは比較的ミニマムな言語だからevalしか解がないケースも多いけど。
- 776 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 11:22:58.87 .net]
- 「ミニマルな言語」って他には例えばなに?
それLLとはまた違うの? いや煽ってるんではなくて単純に訊ねたい。
- 777 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 11:42:26.04 .net]
- コマンド置換の入れ子の限界を試そうと思って
$ i=1; while true; do echo $i; eval $( (yes '$(echo' | head -n $i | tr -d '\n'); (yes ')' | head -n $i | tr -d '\n') ); : $((i++)); done ↑こんなコードを実行してみた。 100あたりから面白いくらいに遅くなっていく しかし500くらいまで試したけど表示は続き、限界を探る目的は達成できなかった。
- 778 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 13:19:07.15 .net]
- ミニマムはすき
- 779 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 14:46:23.27 .net]
- eval関連なんですがaliasの出力結果をevalする方法を教えてください。
具体的にはroot権限でlsがしたいのですが、その時通常のlsと同じオプションを付けて実行したいのです。 ですので(通常の状態での)alias lsの結果を変数かなにかに格納してそれを実行しようと思ったのですが良い方法が思い付きません。 そのコマンド自体もaliasにしたい(具体的にはls@rootコマンドとしてalias ls@root=の形で定義したい)です。 どうかよろしくお願いします。
- 780 名前:752 mailto:sage [2018/06/23(土) 14:52:25.95 .net]
- すいません。一番上の行は無視してください。
evalでできるかなと考えてたプロセスが漏れてしまっただけです。 多分このアプローチは間違っているので無視してください。
- 781 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 19:13:35.47 .net]
- >>750
偽物臭強いけどなw ただ身長が小さいだけじゃないかっつー 本物双子のやつは結構好き
- 782 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 19:18:52.33 .net]
- >>751
普通にぐぐれ
- 783 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/24(日) 00:39:25.04 .net]
- >>751
aliasでなくてsudo使って関数定義するのがいいと思うけどだめなの?
- 784 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/24(日) 07:01:44.49 .net]
- LS=`alias ls`
じゃだめなの?
- 785 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/24(日) 09:15:58.74 .net]
- >>753
詳しく
- 786 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/24(日) 10:16:34.78 .net]
- /tmpでいいじゃん
- 787 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/24(日) 22:14:10.69 .net]
- >>748
データ型が少ないって意味でTclとかかな。 でもTclには文字列型の他に連想配列があるのよね。 POSIX shellの範囲内だと引数配列を除けばホントに文字列しかないので。
- 788 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 16:44:06.12 .net]
-
- 789 名前:アんにちは
ド素人です。 VPSの立ち上げ時にスタートアップシェルスクリプトを使って効率化したいです。 とあるwgetを叩くと、user名とパスワード、パスワードの再入力を求められるのですが、 このuser名、パスワードをシェルスクリプトで入力させるにはどうしたらよいでしょうか。 [] - [ここ壊れてます]
- 790 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:04:46.28 .net]
- wgetでgithub上にある既存のシェルスクリプトを叩くと
ユーザー名とパスワードを聞かれるのですが、 その入力を自動化したいという意味です。 github上のシェルスクリプトは変更できません・・・
- 791 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:16:35.68 .net]
- wgetでシェルスクリプト叩くてどういう意味?
出力をシェルに流し込むって事?
- 792 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:25:22.13 .net]
- なんかパスワード 自動入力 あたりでggったらすぐ出てきそうやな
- 793 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:29:12.30 .net]
- >>761
相手側の要求に従ったuser名パスワードの提供方法をwgetでするとよいでしょう どのVPS?どういう相手側のサービス?その使ったというはGitHubのどれ? https://gist.github.com/kevinold/216077/4d725773b46a2ac32c0f5a689339d3da004d7f5d これでいいのか?適当にぐぐったらVPSだしwget使ってるしw >>762 まあ、なんかセットアップでコマンド叩いたりするのだろう。そういえばwgetで認証できなかったら再入力なんて求められないよな...??あったかな??
- 794 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:55:18.59 .net]
- wgetは--userと--passwordでユーザー名とパスワードを指定できるはずだけど
- 795 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 18:04:40.17 .net]
- httpのBASIC認証やftpのならそれで問題はないよね。普通にBASIC認証でそのオプションを教えてっていうことだけかな
- 796 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 18:12:51.93 .net]
- manくらい嫁カス案件
- 797 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 19:26:12.11 .net]
- wgetが書かれたシェルスクリプトを呼び出すシェルスクリプトを書きたいように見えるが…
まあ質問が日本語的に不自由すぎるね
- 798 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 20:51:22.89 .net]
- wgetがBASIC認証を要求してくるんですが、
パスワードをシェルスクリプトに書きたくないです。 別ファイルに生パスワードを書くのも嫌です。 かといって毎回入力するのは面倒です。 ssh-agent利用して最初に一回いれて覚えさせるだけで あとはパスワードなしにできたりしないですかね?
- 799 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 21:11:05.80 .net]
- ssh-agent/ssh-keychainはどうなんだろ、無理じゃねと思うが、keyring(Linux/BSD)/Keychain Access(macOS)を使えばふつーにできるだろうな
- 800 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 21:17:58.64 .net]
- 最初の質問と内容か変わってるし、パスワード書きたくないらしいので、役にたたないだろうけど、俺ならexpectでスクリプト書く
- 801 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 21:25:16.46 .net]
- 最初の質問者と別人じゃね?レスの書き方から同一人物にも見えるけどw
- 802 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 22:26:52.66 .net]
- まあなんか知らんがもっとドキュメントに当たったらって気がする
- 803 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 00:54:07.84 .net]
- jqについて教えてください。
https://ideone.com/SZlhR4 やり方が分からないので、以下のようにとりあえすyenを指定したら並び順が思ったようになりませんでした。 $ cat kudamono.json | jq -r '.genre_name, .list[].name, .list[].hinshu_list[].yen' くだもの りんご みかん いちご 180 500 200 50 63 300 null null null 続く
- 804 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 00:54:30.18 .net]
- 以下のように標準出力に出す方法を教えてください。
くだもの りんご ふじ 180 サンふじ 500 つがる 200 みかん きんかん 50 いよかん 63 せとみ 300 いちご あまおう null ひのしずく null とちおとめ null
- 805 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 01:36:22.49 .net]
- >>772
別の人ですよー。
- 806 名前:竄閧スいことを思い出したので、書いてみたの♪ []
- [ここ壊れてます]
- 807 名前:名無しさん@お腹いっぱい。 [2018/06/27(水) 03:13:21.88 .net]
- >>774-775
. | .genre_name, (.list[] | .name, (.hinshu_list[] | .hinshu, .yen)) https://stedolan.github.io/jq/tutorial/ https://stedolan.github.io/jq/manual/ 見つつ https://jqplay.org で試した jq初めての俺でもすぐできたじゃねーか まじめにやれ
- 808 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 07:24:03.91 .net]
- >>777
どうもありがとうございます! カッコを使うといいんですね
- 809 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/28(木) 16:24:57.87 .net]
- dashで動くシェルスクリプトってPOSIX準拠のシェルスクリプトだと思って問題ない?
- 810 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/28(木) 17:11:46.11 .net]
- そいつから呼ぶコマンドもPOSIXじゃないとな。
- 811 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/29(金) 00:29:23.70 .net]
- dashはPOSIX準拠である
だからPOSIX準拠のコードはdashで期待どおり動く だけどdash専用のコードはPOSIX準拠ではない
- 812 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/29(金) 01:00:02.18 .net]
- kshのposixモードがかな。POSIX仕様の元となった自負があるだろうからposixモードもちゃんとしてそう
- 813 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/30(土) 22:10:41.02 .net]
- あの,すごく初歩的なことだと思うのですが,
Excelなどのように隣のセルの値を参照して現在のセルの値を計算するという手法を シェルスクリプトで行うにはどうすればいいでしょうか。 具体的には,参照した値をaとして,(1-sin^2(a))/2^aを計算したいです。 Excelだと,A列に値を入力していき,B1セルに「(1-(SIN(A1))^2)/2^A1」と入力した後ドラッグすればいいのですが……。
- 814 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/30(土) 22:52:18.06 .net]
- a=値
echo "(1-s($a)^2)/2^$a" | bc -l とか?
- 815 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/01(日) 20:12:26.02 .net]
- cat <<. | xargs -I @ echo (1-s(@)^2)/2^@ | bc -l
3 44 -6 . こんなのでどう?
- 816 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:00:06.28 .net]
- cat と echo と print の違いが分からない
あと、print と printfの違いも 教えて
- 817 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:00:38.56 .net]
- less と moreも
- 818 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:07:32.55 .net]
- manすりゃいいんじゃないの
- 819 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:15:59.23 .net]
- cat と echo,printf は全然違う。主に出力するソースが(ゆえにパイプで入力受ける受けないとなり?)
echo と printf は、書式が指定できるかというか、コマンド由来とC由来かな printって?awk内のならprintはechoのようなもんかな(Ubuntuには print がコマンドであるけど Mailcap とかナニそれな普通じゃないのだな)
- 820 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:19:26.23 .net]
- ググったらechoは改行されてしまうけどprintfは自分で\nしないと改行されないってあった
- 821 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:23:46.00 .net]
- それらの違いが分からないのは使ってないからだろ
使ってないなら知る必要もないし知ろうとも思わない 自作自演かな?
- 822 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:26:27.85 .net]
- >>791
宿題
- 823 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:27:23.78 .net]
- コマンド由来とC由来ゆうてるやんw
printf(1) は printf(3) と同じと思えば不思議ではないだろう。echo も -n で改行しないようにもできるけどイレギュラー、コマンド由来だからな >>791 まあ、なんの目的で聞いてるのかさっぱりわからんくはあるな。なんの自作自演なのかさっぱりだけど
- 824 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:27:58.46 .net]
- >>792
宿題かああ。程度が低いな。高校でとかか?
- 825 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:28:13.36 .net]
- >>792
あぁ…
|

|