我有一个脚本,它逐行读取 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