使用文件名运行脚本

使用文件名运行脚本

我有一个脚本,它逐行读取 txt 文件,但它首先进入脚本请求文件,然后读取它。我想直接运行脚本。
现在有几个文件,如 a.txt 和 b.txt,有没有办法直接按照文件名运行我的脚本,例如
a.txt(read.sh)

答案1

./script.sh a.txt

并且您的脚本将在变量中包含 a.txt $1$0保存脚本的名称)。

例子:

~$ more script
#!/bin/bash
echo $1
~$ ./script a.txt
a.txt
./script "a a".txt
a a.txt

答案2

如果你的脚本“请求文件然后读取它”从终端的标准输入流(read例如,使用 shell 的内置命令),然后直接将文件名传递给它无需修改脚本将会

echo a.txt | ./scriptname

或者

printf '%s\n' a.txt | ./scriptname

相关内容