空の.txtファイルを生成する必要があるパスと変数を含むシェルスクリプトを生成したいと思います。
私は試みる:
**
path=directory part
touch Test{1..100}.txt
**
ただし、この100個のファイルはスクリプトと同じディレクトリに作成されます。この問題を解決するのに役立ちますか?
答え1
小さなコメント:path
変数名との競合を考慮すると、おそらく良い選択肢ではないでしょうPATH
。編集する:@Paul_Pedantがコメントで指摘したように、inzsh
変数はpath
予約されており、$ PATHにディレクトリを保持する文字列の配列です。たとえば、他の一部のシェルにはbash
そのような予約はありません。
次のようなことができます
FILES_HERE=/path/to/dir
touch $FILES_HERE/Test{1..100}.txt
可変数のファイルを作成するには、そのファイルをループtouch
内で使用できます。while
https://stackoverflow.com/a/31365662/3856731
引数を取り、そこにファイルを保存するスクリプトを持つと便利です。スクリプトが引数なしで呼び出されると、デフォルトは$ PWDです。
#!/bin/bash
touch ${1:-.}/Test{1..100}.txt
(答えの下の構文の説明。)別の名前で保存してtest.sh
呼び出したと仮定すると、chmod +x test.sh
次のことができます。
$ ./test.sh
100個の空のファイルを現在のディレクトリに配置します。または電話してください
$ ./test.sh ~/Documents
それらを書いてください~/Documents
。
編集する:
構文の説明:「設定されていないか空の文字列と同じ場合は、${1:-.}
このスクリプトの最初のコマンドライン引数($1
)またはデフォルト.
(別名$pwd
)に置き換えてください」を意味します。実行可能スクリプトを呼び出すと、指定したパラメータが自動的に列挙されます。$1
''
./script.sh $1 $2 $3 $4...