【鳥兄の私房料理抜粋】SHELLスクリプトプログラミング

1901 ワード

bash関連環境プロファイルは~/.bashrc
標準テンプレートの例は次のとおりです.
#!/bin/bash
# Program:
#       This program shows "Hello World!" in your screen.
# History:
# 2012.05.15 famousDT First release

# main environment declare
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/root/bin/:/home/famousDT/famousDT/scripts
export PATH

#++++++++++++++++++++++++++++++++++++++++++++++
#user input
read -p "first name: " first
read -p "last name: " last
#"-e" let '\' be usefull
echo -e "
Your full name is : $first $last" #++++++++++++++++++++++++++++++++++++++++++++++ #creates three files, which named by user's #input and date command. read -p "input your filename: " fileuser #if fileuser not right, replace it by "filename" filename=${fileuser:-"filename"} date1=$(date --date='2 days ago' +%Y%m%d) date2=$(date --date='1 days ago' +%Y%m%d) date3=$(date +%Y%m%d) file1=${filename}${date1} file2=${filename}${date2} file3=${filename}${date3} touch "$file1" touch "$file2" touch "$file3" #used for "$?" as return value for caller exit 0

数値演算、整数計算しかできません
#++++++++++++++++++++++++++++++++++++++++++++++
#user inputs 2 integer numbers a, b, return a*b
read -p "input first: " first
read -p "input second: " second
total=$(($first * $second));
echo -e "
The result of $first * $second = $total"

累積計算1+2+......100
#++++++++++++++++++++++++++++++++++++++++++++++
s=0
end=100
for ((i=1;i<=$end;i=i+1))
do
	s=$(($s+$i))
done
echo $s

直接shellスクリプトを実行するのはサブプロセスで、sourceでスクリプトを実行する場合は親プロセスで実行し、サブプロセスで設定した変数は親プロセスで有効です.これも、システムをログアウトすることなく何らかの書き込みを行う理由である~/.bashrcの設定は有効で、source~/を使用する必要がある.bashrcはbash~/を用いることができない.bashrc