0と1の反復横跳び

デジタルな仕事とアナログな趣味の記録

シェルスクリプトで引数を渡す

cshスクリプトに引数を渡す際のメモ.

スクリプト名をexchange.shとすると

$ exchange.sh 引数1 引数2

として記述することで引数をスクリプトに渡すことが可能.

この際スクリプトでは $1 ~ $9に記述した引数が順に代入される.

(よっぽどのことがないと9個も引数つけないだろう...)

やりたかったこと.

引数に応じて特定のファイル内の文字列を書き換える.

#!/bin/csh

set hoge=$1
file_path="hoge.txt"

# 引数に応じて置換する文字列を設定
if (${duplex} == "0") then
    set replace_string="fugafuga = 0;"
    set echo "fugafuga set to 0."
else (${duplex} == "1") then
    replace_string="fugafuga = 1;"
    echo "fugafuga set to 1."
else
    echo "Invalid input. Please enter 0 or 1."
    exit 1
endif
endif

#該当の文字列を検索して置換
    sed -i 's/fugafuga = 1;/${replace_string}/' ${file_path} 

ChatGPTが出力したものを修正,引用. もうちょっとスマートに書けそうだな.