#Shell Script コマンド まとめ
##基本
####変数宣言
#=の左右は空白なし
#name ="MK" //NG
#name= "MK" //NG
#name = "MK" //NG
name="MK"
echo "My name is $name"
#コマンドの結果も変数に入れます
result=$(networksetup -getdnsservers Wi-Fi)
echo $result
####比較
#[の右と]の左もスペースが必要です
1="pencil"
if [ "$1" = "pencil" ]; then
echo "Is Same"
else
echo "Is Not Same"
fi
なぜか$1にも""を使う理由は何も代入しないと、以下の結果になってしまいます、errorです
if [ = "pen" ]; then
##Macで保存後ダブルクリックで実行
1.ファイルを.commandで保存、もしくは拡張子なし
2.
chmod +x myscript
##スクリプト実行後Enterキーを押すまで窓を閉じない
#scriptの最後で
read -p "Press Return to Close..."
##Wi-FiのDNSを切り替え
#現在のWi-Fi DNS確認
networksetup -getdnsservers Wi-Fi
#Wi-Fi DNSをセット
networksetup -setdnsservers Wi-Fi $dns
#Wi-Fi DNSを削除
networksetup -setdnsservers Wi-Fi empty
##ファイルをtar.gzにする
$ tar -czvf file.tar.gz ./folder
-c : 新しく作成する
-v : 出力
-f file.tar.gz : 対象
-z : gzipでfilterする
##tar.gzを解凍する
$ tar -xzvf file.tar.gz
-x : 解凍
$ tar -xzvf my.tar.gz -C /home/vivek/backups/
-C : 解凍先を指定する(実際は解凍する前にそっちに移動する)
##tar.gzの中身を見る
tar -ztvf file.tar.gz
#ファイルをリモートにあげる
##ファイルをアップロード
$ scp file.txt remote_username@XX.XX.XX.X:/remote/directory/myfolder
##ファイルの名前を変更
$ scp file.txt remote_username@XX.XX.XX.X:/remote/directory/myfolder/newFile.txt
##Directoryごとをリモートにあげる
$ scp r /folder/project remote_username@XX.XX.XX.X:/remote/directory/
##リモートからローカルへ
scp remote_username@XX.XX.XX.X:/remote/directory/file.txt /local/directory
#SSH 関連(要復習確認:X)
##連続コマンドを実行したい場合
ssh -T XXX.XX.X.XXX << `EOF`
cd /myfile/project/
pwd
ls -ll
mv file newFile
EOF
##ローカル変数は上記のやり方で使えないので注意
NAME="myProject"
ssh -T XXX.XX.X.XXX << `EOF`
echo "This is my ${NAME}"
EOF
###結果
This is my
##毎行ずつならできます
ssh -T XXX.XX.X.XXX << `EOF`
ssh -T XXX.XX.X.XXX echo "This is my ${NAME}"
##リモートにファイルあるかどうか
TARGETZIP="myfile.tar.gz"
ssh -T XXX.XX.X.XXX "[ -f /file/folder/$TARGETZIP ]"