繁体   English   中英

我正在学习bash,与命令行参数混淆

[英]Im learning bash, confused with command line arguments

我需要创建一个脚本,该脚本允许传递命令行参数,并检查它是否作为运行脚本的目录的目录中的目录存在。如果确实列出了内容,并且没有显示错误消息。 因此,在命令行中,我应该键入./check.sh test(现有目录),脚本应该运行。 现在我不知道如何使用应为$ 1的测试。 在脚本中,我要使用$ 1并对照现有目录进行检查。 但是,如果我做类似的事情:

#!/bin/bash
DIR=$1
cd DIR
ls

它不起作用,因为DIR不接受参数(在本例中为test),我知道我需要使用if-else块,但我不理解如何获取所需的信息。 请有人帮我解决这个问题。

我想你想要类似的东西

#!/bin/bash
DIR="$1"
#test if $DIR is a directory.
if [ -d "$DIR" ]; then
    cd "$DIR"
    ls
fi

或者,您可能一直使用$1 (它比$ DIR短,我更喜欢使用env搜索bash它并不总是/bin/bash )。

#!/usr/bin/env bash
if [ -d "$1" ]; then
    cd "$1"
    ls
fi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM