shell 脚本中$$,$#,$?分别代表什么意思?

 我来答
世纪网络17
2022-10-19 · TA获得超过5889个赞
知道小有建树答主
回答量:2426
采纳率:100%
帮助的人:136万
展开全部

shell 脚本中$$,$#,$?分别代表什么意思?

给你个全的,你在Linux环境下多试下就明白了:
$0 这个程式的执行名字
$n 这个程式的第n个参数值,n=1..9
$* 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
$@ 跟$*类似,但是可以当作数组用

shell脚本中 $# 是代表什么?

代表你脚本的参数个数
比如./test.sh var1 var2 var3
$#就是3,因为有3个变量

QTP VBS脚本中,Exist(3)代表什么意思啊?

判断对象在3秒内是否在应用程序中存在,3秒内的任何时候若存在了,则立即完成该语句并返回True(最短约0秒);若超过3秒后仍没有在应用程序中存在(其实就是应用程序中没有符合该对象属性描述的控件),则返回false,但是不会在result中将该语句认定为执行fail

shell脚本中a=$1:$2什么意思

a='123'
b='456'
c=$a+$b
echo $c
>>>123:456
这就是结果咯,$1代表第一个命令行参数,$2代表第二个参数
例如你的脚本名叫test.sh,那么执行test.sh 123 456,你的$a就是123:456

shell脚本中变量前加$表示什么意思?

就是一个规定的标识吧,告诉shell,这个时候该取$后面这个变量的值了。

unity3d的Js脚本中,var bPowerupStatus : boolean[];代表什么意思?

JavaScript - BakeMaterial.js
class BakeMaterialSettings
{
private static var kEditorPrefsName = "BakeMaterialSettings";
static var kBakingLayerShouldBeUnusedInScene = 30;
static var kStandardTexNames = new Array ("_MainTex", "_BumpMap", "_Detail", "_ParallaxMap","_Parallax");
var bakeAlpha = false;
var bakeMainTexAsWhite = false;
var minTextureResolution = 8;
var maxTextureResolution = 2048;
var emptyScene = false;
var useCustomLights = false;
var ambient = Color.black;
static var kLights = 3;
var enableLight = new boolean[kLights];
var colorLight = new Color[kLights];
var dirLight = new Vector2[kLights];
function BakeMaterialSettings ()
{
Load ();
}
function Load ()
{
bakeAlpha = EditorPrefs.GetBool(kEditorPrefsName + ".bakeAlpha");
bakeMainTexAsWhite = EditorPrefs.GetBool(kEditorPrefsName + ".bakeMainTexAsWhite");
minTextureResolution = EditorPrefs.GetInt(kEditorPrefsName + ".minTextureResolution", 8);
maxTextureResolution = EditorPrefs.GetInt(kEditorPrefsName + ".maxTextureResolution", 2048);
emptyScene = EditorPrefs.GetBool(kEditorPrefsName + ".emptyScene");
useCustomLights = EditorPrefs.GetBool(kEditorPrefsName + ".useCustomLights");
ambient.r = EditorPrefs.GetFloat(kEditorPrefsName + ".ambient.r");
ambient.g = EditorPrefs.GetFloat(kEditorPrefsName + ".ambient.g");
ambient.b = EditorPrefs.GetFloat(kEditorPrefsName + ".ambient.b");
ambient.a = EditorPrefs.GetFloat(kEditorPrefsName + ".ambient.a", 1.0f);
for (var q = 0; q < kLights; ++q)
{
enableLight[q] = EditorPrefs.GetBool(kEditorPrefsName + ".enableLight" + q);
colorLight[q].r = EditorPrefs.GetFloat(kEditorPrefsName + ".color.r" + q, 0.5f);
colorLight[q].g = EditorPrefs.GetFloat(kEditorPrefsName + ".color.g" + q, 0.5f);
colorLight[q].b = EditorPrefs.GetFloat(kEditorPrefsName + ".color.b" + q, 0.5f);
colorLight[q].a = EditorPrefs.GetFloat(kEditorPrefsName + ".color.a" + q, 1.0f);
dirLight[q].x = EditorPrefs.GetFloat(kEditorPrefsName + ".dir.x" + q);
dirLight[q].y = EditorPrefs.GetFloat(kEditorPrefsName + ".dir.y" + q);
}
}
function Save ()
{
EditorPrefs.SetBool(kEditorPrefsName + ".bakeAlpha", bakeAlpha);
EditorPrefs.SetBool(kEditorPrefsName + ".bakeMainTexAsWhite", bakeMainTexAsWhite);
EditorPrefs.SetInt(kEditorPrefsName + ".minTextureResolution", minTextureResolution);
EditorPrefs.SetInt(kEditorPrefsName + ".maxTextureResolution", maxTextureResolution);
EditorPrefs.GetBool(kEditorPrefsName + ".emptyScene", emptyScene);
EditorPrefs.SetBool(kEditorPrefsName + ".useCustomLights", useCustomLights);
EditorPrefs.SetFloat(kEditorPrefsName + ".ambient.r", ambient.r);
EditorPrefs.SetFloat(kEditorPrefsName + ".ambient.g", ambient.g);
EditorPrefs.SetFloat(kEditorPrefsName + ".ambient.b", ambient.b);
EditorPrefs.SetFloat(kEditorPrefsName + ".ambient.a", ambient.a);
for (var q = 0; q < kLights; ++q)
{
EditorPrefs.SetBool(kEditorPrefsName + ".enableLight" + q, enableLight[q]);
EditorPrefs.SetFloat(kEditorPrefsName + ".color.r" + q, colorLight[q].r);
EditorPrefs.SetFloat(kEditorPrefsName + ".color.g" + q, colorLight[q].g);
EditorPrefs.SetFloat(kEditorPrefsName + ".color.b" + q, colorLight[q].b);
EditorPrefs.SetFloat(kEditorPrefsName + ".color.a" + q, colorLight[q].a);
EditorPrefs.SetFloat(kEditorPrefsName + ".dir.x" + q, dirLight[q].x);
EditorPrefs.SetFloat(kEditorPrefsName + ".dir.y" + q, dirLight[q].y);
}
}
}
class BakeMaterial extends EditorWindow
{
private static var kMateriBakeNodeName = "__MateriaBakeSetup";
private static var kWindowMinSize = Vector2 (300, 386);
private static var settings : BakeMaterialSettings;
private static var visible : boolean = false;
private var camera : GameObject;
private var plane : GameObject;
private var previewTexture : Texture;
private var lights : GameObject[] = new GameObject[BakeMaterialSettings.kLights];
private var stateChanged = false;
private var texViewScrollPosition = Vector2.zero;
private var lastMaterial : Material;
private var originalScene = "";
private var scheduleBakeOnNextUpdate = false;
private function SetupScene ()
{
DestroyScene ();
var oldGo = GameObject.Find(kMateriBakeNodeName);
if (oldGo)
DestroyImmediate (oldGo);
camera = new GameObject (kMateriBakeNodeName, Camera);
plane = GameObject.CreatePrimitive (PrimitiveType.Plane);
var cam = camera;
cam.camera.backgroundColor = Color.black;
cam.camera.clearFlags = CameraClearFlags.SolidColor;
cam.camera.orthographic = true;
cam.camera.orthographicSize = 5.0;
cam.camera.cullingMask = 1 << settings.kBakingLayerShouldBeUnusedInScene;
plane.transform.parent = cam.transform;
plane.transform.position = Vector3.forward * 10.0;
plane.transform.rotation = Quaternion.Euler (0, 0, 180) * Quaternion.Euler (-90, 0, 0);
plane.layer = settings.kBakingLayerShouldBeUnusedInScene;
for (var l in lights)
{
l = new GameObject ("Light", Light);
l.light.type = LightType.Directional;
l.light.cullingMask = 1 << settings.kBakingLayerShouldBeUnusedInScene;
l.transform.parent = cam.transform;
l.active = false;
}
}
private function UpdateScene (m : Material)
{
for (q = 0; q < settings.kLights; ++q)
{
lights[q].active = settings.useCustomLights & settings.enableLight[q];
lights[q].light.color = settings.colorLight[q];
lights[q].transform.rotation =
Quaternion.AngleAxis(settings.dirLight[q].x, Vector3.up) *
Quaternion.AngleAxis(settings.dirLight[q].y, Vector3.right);
}
if (settings.useCustomLights)
RenderSettings.ambientLight = settings.ambient;
else if (settings.emptyScene)
RenderSettings.ambientLight = Color.white;
plane.renderer.material = m;
}
private function DestroyScene ()
{
GameObject.DestroyImmediate (camera);
GameObject.DestroyImmediate (plane);
GameObject.DestroyImmediate (previewTexture);
}
function UpdateMaterialPreview (m : Material) : RenderTexture
{
if (!m)
return;
var saveAmbientLight = RenderSettings.ambientLight;
var saveMainTexture = m.mainTexture;
if (settings.bakeMainTexAsWhite)
m.mainTexture = null;
setup
if (!camera)
SetupScene ();
camera.SetActiveRecursively(true);
UpdateScene (m);
var res = FindLargestTextureResolution (plane.renderer.sharedMaterial, settings.minTextureResolution, settings.maxTextureResolution);
var rt = RenderCameraToRenderTexture (camera.camera, res.x, res.y);
restore
camera.SetActiveRecursively(false);
RenderSettings.ambientLight = saveAmbientLight;
m.mainTexture = saveMainTexture;
previewTexture = rt;
return rt;
}
function CaptureMaterial(m : Material)
{
var matAssetPath = AssetDatabase.GetAssetPath (m);
var assetPath = System.IO.Path.Combine (System.IO.Path.GetDirectoryName (matAssetPath), System.IO.Path.GetFileNameWithoutExtension (matAssetPath));
var rt = UpdateMaterialPreview (m);
RenderTextureToPNG (rt, settings.bakeAlpha, assetPath + ".png");
}
function OnEnable ()
{
if (!settings)
settings = new BakeMaterialSettings ();
SetupScene ();
visible = true;
}
如果你还有什么不懂的,可以百度搜下:编程回忆录,他们现在正在录制这方面的教程,都是零基础开始,由浅入深。
}

shell脚本中的美元符号什么意思

linux shell脚本中的美元符号$,是作为shell中特殊变量使用的,具体含义:

$0 shell的命令本身(包括完整路径)
$1到$9 数字表示shell 的第几个参数
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数
$$ 脚本运行的ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同。
$- 显示shell使用的当前选项。
$? 显示最后命令的执行状况。0表示没有错误。

javascript 脚本中 innerHTML 代表什么?

<>
<body>
<div><a href="#">aaaaa</a>
</div>
</body>
<>
innerHtml 表示指定对象内的所有内容。
比如你现在的对象是<div>标签,则innerHtml是:<a href="#">aaaaa</a>

shell脚本中 if 判断时候-s是什么意思

文件大小非0时为真
[ -f "somefile" I74 :判断是否是一个文件
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n "$var" ] :判断$var变量是否有值
[ "$a" = "$b" ] :判断$a和$b是否相等,详细用法可参考《linux就该这么学》第二章,-r file 用户可读为真
-w file 用户可写为真
-x file 用户可执行为真
-f file 文件为正规文件为真
-d file 文件为目录为真
-c file 文件为字符特殊文件为真
-b file 文件为块特殊文件为真
-s file 文件大小非0时为真
-t file 当文件描述符(默认为1)指定的设备为终端时为真

指的是文件大小非0时为真。

shell中怎么判断输入的是否是数字:

第一种:sed格式

首先:我们先(在命令行直接输出模拟一下,如果都正确再在shell脚本中进行书写。)直接echo输出一下

echo "111asd"

第一步:思想

然后我们就要想一下我们要说用sed判断,但是sed的最主要的功能是什么?替换!当然是替换,既然是替换那么我们能不能直接把echo输出的数字直接替换掉,然后看这个输出还剩下什么呢?如果我们剩下的空,那么我就基本可以确定我echo输出的就是空,如果我sed替换之后不是空,那么我是不是就是可以认为我echo输出的不是数字或不全是数字呢?

第二步:命令行测试:

[root@localhost shell]# echo "111asd" | sed 's#[0-9]##g' | cat -A

asd$

[root@localhost shell]# echo "111" | sed 's#[0-9]##g' | cat -A

$

第三步:进行shell测试

经过第二步我们很明显就能看出来这个想法是能够实现的。所以在shell中配合-z(zero)-n(no zero)是完全可以实现的,所以这个时候我们就可以进行脚本的编写测试了。

#!/bin/bash

##############################################################

# File Name: test.sh

# Version: V1.0

# Author: ls

# Created Time : 2017-02-24 06:25:13

# Description:

##############################################################

#交互式外部读取

read -p "pleace input: " a1

#if进行数字判断

if [ -z "$(echo $a1 | sed 's#[0-9]##g')" ]

then

#如果是数字输出yes给$?一个1的返回值并退出。

echo "yes"

exit 1

else

#如果不是数字输出no给$?一个1的返回值并退出。

echo "no"

[root@localhost shell]# sh test.sh

pleace input: 1

yes

[root@localhost shell]# sh test.sh

pleace input: q1

no

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式