Bash - 没有足够的论据

时间:2016-11-18 06:17:38

标签: bash

我之前从未使用过bash,但我试图理解这段代码。该脚本应显示所有登录名,全名及其用户ID。但是,每当我运行时,我都无法通过第一个if语句,如果我删除该语句,它就不起作用。

#!/bin/bash 
if [ $# -lt 1 ]; 
   then 
   printf "Not enough arguments - %d\n" $# 
   exit 0 
   fi 

typeset user="" 
typeset name="" 
typeset passwdEntry="" 
while [ $# -ge 1 ]; 
   do 
   user=$1 
   shift 
   name="" 
   passwdEntry=`grep -e ^$user /etc/passwd 2>/dev/null` 
   if [ $? -eq 0 ]; then 
   name=`echo $passwdEntry|awk -F ':' '{print $5}'` 
fi 
echo "$user $name" 
done

1 个答案:

答案 0 :(得分:4)

angular.module('starter', ['ionic']) .run(function($ionicPlatform) { $ionicPlatform.ready(function() { var push = new Ionic.Push({ "debug": true }); push.register(function(token) { console.log("My Device token:",token.token); push.saveToken(token); // persist the token in the Ionic Platform }); }); }) 表示“当前Bash程序的参数数量”,$#表示“当前Bash程序的第一个参数”。

所以你的问题是你没有向程序传递任何参数;例如,而不是像这样的东西:

$1

你需要写这样的东西:

./foo.sh

由于您是Bash的新手,我强烈建议您浏览 Bash参考手册http://www.gnu.org/software/bash/manual/bashref.html。这一切都在一个页面上,因此您可以使用浏览器的“查找页面”功能(通常为./foo.sh USERNAME )来搜索内容。