如何传递路径到功能

时间:2017-04-24 12:18:32

标签: linux shell

函数解析路径参数

gzip_files (){
  echo 'gzip files'
  echo $1
}

gzip_files '/var/www/bak/*/*'

输出

gzip files
/var/www/bak/site1/ini /var/www/bak/site1/db /var/www/bak/site2/ini /var/www/bak/site2/site /var/www/bak/site2/ini

如何获得输出

gzip files
/var/www/bak/*/*

2 个答案:

答案 0 :(得分:3)

您必须引用$1

echo "$1"

或者变量的内容将被解释为直接输入,即

中的通配符*
echo /var/www/bak/*/*

将会扩展。

答案 1 :(得分:2)

引用变量扩展以防止发生shell globbing:

gzip_files (){
  echo 'gzip files'
  echo "$1"
}

请注意,如果您想使用多个位置参数,则需要$@使用$1来引用所有这些参数,而不仅仅是gzip_files (){ echo 'gzip files' echo "$@" } 引用的第一个:

vertical-align:top