[OK]を私は、パラメータとして文字列を持つことになります機能を持っており、それが出力はどんなスペースを持っていないこと新しい文字列、'
、"
バッシュは - "を持っているファイルの名前を変更でそれ
function rename_file() {
local string_to_change=$1
local length=${#string_to_change}
local i=0
local new_string=" "
local charac
for i in $(seq $length); do
i=$((i-1))
charac="${string_to_change:i:1}"
if [ "$charac" != " " ] && [ "$charac" != "'" ] && [ "$charac" != """ ]; then #Here if the char is not" ", " ' ", or " " ", we will add this char to our current new_string and else, we do nothing
new_string=$new_string$charaC#simply append the "normal" char to new_string
fi
done
echo $new_string #Just print the new string without spaces and other characters
}
しかし、私はちょうどそれだけでは動作しませんので、charが"
であるかどうかを調べる。そして、私は
それはちょうど>
を開き、何かを入力するのを待つ..どんな助け?
rename_file(ファイル "n am_e") –
rename_file(ファイル "n ame")を入力(またはスクリプトを入力)した場合、関数 'rename_file'を引数' file 'n ame'というよりむしろ文字列の始めを入力していて、bashはあなたにプロンプトを表示して文字列を終了させるのを待っています' rename_file file \ "n ame' –
純粋なbash解、代わりに1ライナーを提案してもいいですか? '$ 'を' $'に変更してください: 'new_string = $(echo $ string | sed -e 's///' -e 's /、//' -e 's /" //' – favoretti