相关疑难解决方法(0)

更正Bash和shell脚本变量大小写

我遇到了许多带有变量的shell脚本,我一直认为存在严重的误解.我的理解是,按照惯例(也许很久以前就必须),环境变量都是全部的.

但是在像Bash这样的现代脚本环境中,我总是倾向于使用临时变量的小写名称约定,而仅为导出(即环境)变量使用大写的约定.例如:

#!/usr/bin/env bash
year=`date +%Y`
echo "It is $year."
export JAVA_HOME="$HOME/java"
Run Code Online (Sandbox Code Playgroud)

这一直是我对事物的看法.是否有任何权威来源同意或不同意这种方法,还是纯粹是风格问题?

bash shell scripting naming-conventions capitalization

171
推荐指数
5
解决办法
5万
查看次数

shell脚本是否对编码和行结尾敏感?

我正在Mac上制作NW.js应用程序,并希望通过双击图标以开发模式运行应用程序.第一步,我正在尝试使我的shell脚本工作.

在Windows上使用VSCode(我想获得时间),我run-nw在项目的根目录创建了一个文件,其中包含:

#!/bin/bash

cd "src"
npm install

cd ..
./tools/nwjs-sdk-v0.17.3-osx-x64/nwjs.app/Contents/MacOS/nwjs "src" &
Run Code Online (Sandbox Code Playgroud)

但我得到这个输出:

$ sh ./run-nw

: command not found  
: No such file or directory  
: command not found  
: No such file or directory  

Usage: npm <command>

where <command> is one of:  (snip commands list)

(snip npm help)

npm@3.10.3 /usr/local/lib/node_modules/npm  
: command not found  
: No such file or directory  
: command not found
Run Code Online (Sandbox Code Playgroud)

我真的不明白:

  • 似乎它需要空行作为命令.在我的编辑器(VSCode)我试图替换\r\n\n(以防\r造成了问题),但它改变不了什么.
  • 它似乎找不到文件夹(有或没有dirname指令),或者它可能不知道cd …

bash shell sh

37
推荐指数
4
解决办法
1万
查看次数

运行"读取路径"后"ls:not found"

我正在尝试编写一个小脚本来列出给定变量的目录.但是,ls在读取变量输入后,我根本无法运行PATH.

#!/system/bin/sh 
echo "enter directory for listing"
read "PATH"

ls "$PATH" -R > list.txt
Run Code Online (Sandbox Code Playgroud)

这退出:

ls: not found
Run Code Online (Sandbox Code Playgroud)

......并没有写任何东西list.txt.

shell scripting sh

4
推荐指数
1
解决办法
3475
查看次数

标签 统计

shell ×3

bash ×2

scripting ×2

sh ×2

capitalization ×1

naming-conventions ×1