Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash脚本如何逐个显示文件名_Linux_Bash_Shell_Parameters - Fatal编程技术网

Linux Bash脚本如何逐个显示文件名

Linux Bash脚本如何逐个显示文件名,linux,bash,shell,parameters,Linux,Bash,Shell,Parameters,我创建文件“my.sh”,并在该文件中编写代码 if [ $# = 0 ]; then echo "filename: $0" fi 然后我执行my.sh文件 $my.sh->我想要输出[文件名:my.sh] 但是,结果显示[文件名:./my.sh] 最后,当我输入my.sh时,输出显示[文件名:my.sh],当我输入/my.sh时,输出显示[文件名:./my.sh]您可以使用: 另外,请注意,[[通常是。echo“文件名:${0##*/}”(使用带子字符串的bash参数扩展)此外,如果

我创建文件“my.sh”,并在该文件中编写代码

if [ $# = 0 ]; then
   echo "filename: $0"
fi
然后我执行
my.sh
文件

$my.sh
->我想要输出[
文件名:my.sh
]

但是,结果显示[
文件名:./my.sh
]

最后,当我输入
my.sh
时,输出显示[
文件名:my.sh
],当我输入
/my.sh
时,输出显示[
文件名:./my.sh
]

您可以使用:


另外,请注意,
[[
通常是。

echo“文件名:${0##*/}”
(使用带子字符串的bash参数扩展)此外,如果没有
/my.sh
,您就无法单独执行
my.sh
,除非
my.sh
位于您的
路径中的目录中。当您运行
/home/me/my.sh
时会发生什么?您是剥离
/home/me/
?还是只剥离相关目录,如
./
//code>?pat又如何像
/home/me/./me/./me/my.sh
[$#=0]
这样的hs是不正确的,从“技术上”应该是
[$#-eq 0]
,这样比较的是一个整数,而不是字符串。当我运行“$/home/fold/proj/my.sh”时,结果是文件名:/home/fold/proj/my.sh。另外,我只在同一目录下运行文件。
#!/usr/bin/env bash
if [ $# = 0 ]; then
   echo $(basename $0)
fi