あけましておめでとうございます
現状:
エンジニアへの未経験転職。
就職先もほぼ決まり、2月からひよこエンジニアに。
2025年は頑張ろうということで、2025年学習記録1日目。
内容は常に書き散らしのメモです、あしからず。
当面の目標:LPIC101,102合格
#!/bin/bash
とは?
以下、perplexity回答。
- シェルスクリプトの先頭に記述される「シバン」(shebang)と呼ばれる行。
意味:
- このスクリプトがbashシェルで実行されることを指定します[1][2]。
- スクリプトを実行する際、システムは/bin/bashインタープリターを使用してスクリプトを解釈します[3]。
- スクリプト内でbash固有の機能を使用できることを明示します[2]。
主な特徴:
- スクリプトを./script.shのように直接実行した場合、指定されたインタープリター(この場合はbash)でスクリプトが実行されます[4]。
- bashの拡張機能(配列変数、高度な比較機能など)を使用できます[2]。
- 移植性や永続性が期待できないスクリプトの場合、bashを明示的に指定することで機能を制限せずに書くことができます[2]。
注意点:
- #!/bin/shと書いた場合、環境によっては異なるシェル(例:dash)で実行される可能性があるため、bash固有の機能を使用する場合は#!/bin/bashと明示することが重要です[2]。
Citations:
[1] https://moneyforward-dev.jp/entry/2015/05/21/bash-script-tips/
[2] https://qiita.com/jkr_2255/items/84366f677be3365331cd
[3] https://note.com/milkcoff_e/n/nb645f1dc3f2d
[4] https://nrbm-akatsuki.com/142/
[5] https://tech-blog.rakus.co.jp/entry/20210525/shellscript
[6] https://qiita.com/yn-misaki/items/6fcfab082dd664f10d4e
[7] https://qiita.com/tanimoto-hikari/items/e505b24c5d074b97c3c7
[8] https://zenn.dev/takeo/articles/532898d753b6fc
インタープリターとは?
プログラムを1行ずつ解釈しながら実行するソフトウェア。
以下、コメント
なるほど。
つまり、#!/bin/bash
とは、外部のパッケージを読み込む記述みたいなもの?
書かずに実行したらどうなる?
=>echo
で呼び出すだけなら記述が無くても何も問題なく実行される。
またどこかのタイミングでやってみるか。
配列について
実行権限を与えた.sh
ファイルで、配列を記述。
fruits()
という配列があった場合、
echo ${fruits[@]}
で配列の中身を、
echo ${fruits[0]}
でindex0
の内容を、
echo ${!fruits[@]}
でindex
を、
echo ${#fruits[@]}
でindex
の個数を返してくれる。
この部分は書き方だけで他のプログラミング言語と同じみたい。
配列の追加方法:fruits[3]='banana'
(例)
配列の削除方法:unset fruits[3]='banana'
(例)
非常に分かりやすい。
引数とは。
実行するとき、シェルに渡す値。./○○.sh a b
a, b がそれぞれ第一引数、第二引数
echo $?
コマンド
直前に実行されたコマンドの戻り値(終了ステータス)を表示するためのコマンド。
成功していたら 0
が返ってくるらしい。
read
コマンド
対話式で受け付ける標準入力モード。
read -p '入力時に文字を表示させる:' var
read -sp 'シークレットモードでの入力:' password
-
read -a names
# 配列(Array)での入力
Python3
- 配列の長さを取得する方法
len(array)
- 今回使用したもの:
for i in range(len(array)):
- Pythonでは、
&&
は論理演算子として使用できない。
代わりにand
を論理AND演算子として用いる。